Ska man välja MySql eller MongoDB för C# app?

Permalänk
Medlem

Ska man välja MySql eller MongoDB för C# app?

Jag håller på med en C# program för windows och hade behövt lagra data online så att flera användare kommer åt samma data. Vilken databas är enklast att integrera med C#, ska man välja MySql eller MongoDB?

Permalänk
Medlem

MySQL är relational och MongoDB är NoSQL. Så frågan är väl snarare vad har du för typ av data och behov?

Permalänk
Medlem

Om du saknar tidigare erfarenhet av databaser och vill lära dig så skulle jag ta en SQL-databas (MySQL, SQL Server och PostgreSQL är vanligast). SQL är någonting man verkligen bör kunna som utvecklare.

MongoDB är en dokumentdatabas som används i betydligt mindre utsträckning i praktiken, men har börjat ta fart de senaste åren. Mongo är teoretiskt enklare att använda än en relationell databas, så om du bara är ute efter att få någonting att fungera så fort som möjligt kan detta vara snabbare. Å andra sidan finns det otroligt mycket mer resurser för hur man använder SQL ute på nätet.

Vilken som är bäst är beroende på användningsområde. En SQL-databas är för de allra flesta användningsområden snabbare än en dokumentdatabas, men har du inte otroligt stora mängder data och/eller komplicerade relationdr mellan data är det ganska ovidkommande. Mongo är lättare att experimentera med då du inte behöver ett databasschema som måste migreras när du gör ändringar i datans struktur.

Personligen hade jag valt MongoDB om jag behövde experimentera med hur datan ska se ut samt inte har några krav på hypersnabba queries, eller bara inte kommer att ha så mycket data i praktiken.

Permalänk
Medlem

Om du ska köra online behöver väl inte appen bry sig utan kör något REST api med JSON eller något?

Sedan kan serverns köra Hibernate eller något annat enkelt för att slippa bry sig om att skriva egen databas

Permalänk
Medlem
Skrivet av medbor:

Om du ska köra online behöver väl inte appen bry sig utan kör något REST api med JSON eller något?

Sedan kan serverns köra Hibernate eller något annat enkelt för att slippa bry sig om att skriva egen databas

Även om du definierar databasen med en ORM (object relational mapping, som Hibernate är) måste det finnas ett databassystem någonstans som lagrar datan. Det finns ORM-liknande ramverk som stödjer NoSQL såsom graf- och dokumentdatabaser, så att välja den stilen av data access layer gör inte att man har valt typen av databas.

REST är bara ett sätt att exponera data över ett nätverk och bestämmer inte hur datan lagras. Både relationella databaser och dokumentdatabaser går utmärkt att exponera med REST.

Permalänk
Medlem
Skrivet av SimpLar:

Även om du definierar databasen med en ORM (object relational mapping, som Hibernate är) måste det finnas ett databassystem någonstans som lagrar datan. Det finns ORM-liknande ramverk som stödjer NoSQL såsom graf- och dokumentdatabaser, så att välja den stilen av data access layer gör inte att man har valt typen av databas.

REST är bara ett sätt att exponera data över ett nätverk och bestämmer inte hur datan lagras. Både relationella databaser och dokumentdatabaser går utmärkt att exponera med REST.

Det jag menade var att lagringen är agnostisk om man gör så, bara spin upp vilken db som helstnoch en matchande hibernate klient så kan man bara skicka objekt rakt in och inte behöva tänka så mycket mer än så. Självklart kan man leka mer detaljerat än så men behövs oftast inte i min erfarenhet