【问题标题】:Non relational database design with SQL Server?使用 SQL Server 进行非关系数据库设计?
【发布时间】:2010-12-19 05:39:54
【问题描述】:

我目前正在开发一个电子商务网站,我将为此项目使用 C#、实体框架和 SQL Server 2008。

数据库结构并不复杂,就像Wordpress数据库一样。我发现了一些非关系型数据库,如 Google BigTable、MongoDB 等,但仍然没有完全了解这项技术的优势。

我知道 SQL Server 不能仅仅通过删除表之间的所有关系来成为 NoSQL DMS,但我仍然关心这个问题:

如果我们删除 SQL Server 中的所有关系并使用实体框架,它是更快还是更慢或有什么缺点?

感谢您的阅读,并为我的英语不好感到抱歉。任何帮助将不胜感激。

【问题讨论】:

  • 您可以轻松地模拟 NoSQL DB,只需要一个表,其中只有一个标识列和一个 XML 列。不过,我不得不想象它会更慢。
  • 感谢您的评论,但我想保留结构^^
  • 如果您不使用 RDBMS,我认为使用 ORM 没有意义。像 EF 这样的东西的优点是继承、复杂类型等 - 如果您要拥有一个或两个表,只需使用经典的 ADO.NET。
  • 仅仅通过删除关系,你就什么都没有 - 你既不是更快,也不是真正的“NoSQL”方法。如果您使用 SQL Server - 那就使用它,并充分利用它的关系特性!关系和参照完整性的存在有充分的理由 - 充分利用它们,不要只是关闭它们...
  • @marc_s - 完全同意。

标签: .net sql-server entity-framework non-relational-database


【解决方案1】:

我猜你所说的“关系”是指外键?删除外键与“非关系型”数据库无关。

使用外键和其他约束的主要原因是为了数据完整性。通常约束是实现完整性规则的最有效方式。优化器也可以使用它们来提高某些查询的性能。我对您的建议是设计具有您需要的完整性约束的数据库,然后再优化数据库。

【讨论】:

    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 2012-10-05
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多