0

Ich arbeite derzeit an der Entwicklung einer E-Commerce-Website und werde C#, Entity Framework mit SQL Server 2008 für dieses Projekt verwenden.Nicht relationales Datenbankdesign mit SQL Server?

Die Datenbankstruktur ist nicht komplex, wie Wordpress Database. Ich habe von nicht-relationalen Datenbanken wie Google BigTable, MongoDB, ... erfahren, verstehe aber immer noch nicht die Vorteile dieser Technologie.

Ich weiß, dass SQL Server kann nicht NoSQL DMS wird nur durch alle Beziehungen zwischen Tabellen zu entfernen, aber ich immer noch Besorgnis über diese Frage:

Wenn wir alle Beziehungen in SQL Server und die Arbeit mit Entity Framework zu entfernen, ist es schneller oder langsamer oder irgendwelche Nachteile?

Danke fürs Lesen und Entschuldigung für mein schlechtes Englisch. Jede Hilfe wäre willkommen.

+3

Sie können eine NoSQL-DB problemlos emulieren, indem Sie nur eine einzige Tabelle mit nur einer Identitätsspalte und einer XML-Spalte haben. Ich müsste mir aber vorstellen, dass es langsamer wäre. – Gabe

+0

Vielen Dank für Ihren Kommentar, aber ich möchte die Struktur beibehalten ^^ – ByulTaeng

+3

Ich sehe keinen Sinn in der Verwendung eines ORM, wenn Sie kein RDBMS verwenden. Die Vorteile von etwas wie EF sind Vererbung, komplexe Typen usw. - wenn Sie nur eine oder zwei Tabellen haben, verwenden Sie einfach klassisches ADO.NET. – RPM1984

Antwort

2

Mit "Beziehungen" denke ich, du meinst Foreign Keys? Das Entfernen von Fremdschlüsseln hat nichts damit zu tun, dass eine Datenbank "nicht relational" ist.

Der Hauptgrund für die Verwendung von Fremdschlüsseln und anderen Einschränkungen ist die Datenintegrität. In der Regel sind Constraints der effizienteste Weg, um Integritätsregeln zu implementieren. Sie können auch vom Optimierer verwendet werden, um die Leistung einiger Abfragen zu verbessern. Mein Rat an Sie ist, die Datenbank mit den Integritätsbedingungen zu entwerfen, die Sie brauchen, und die Datenbank anschließend zu optimieren.