在我的工作场所,我们偶然发现了一个问题,我们需要创建一种 list 应用程序,它为每个对象存储不同类型的属性,并具有动态处理属性/列的能力,即我们不想每次现有对象的新属性(例如,现在我们需要考虑蓝牙硬件!)或当一个新对象完全出现时(现在我们需要考虑游戏 handle !),都必须修改应用程序。这些对象当然必须是可读和可编辑的。
虽然我们以传统的 SQL 为中心(Oracle、MySQL、MSSQL),但我并不反对以任何其他方式(例如,NoSQL)进行操作的可能性,对此我们从未处理过并且有点忘记了.然而,我们需要使用 ASP.NET MVC 进行开发。
任何指导将不胜感激。 :)
最佳答案
实际上,您描述的问题可以通过关系数据库完美解决,但您的团队需要更多时间。我认为文档数据库是您更好的选择。 RavenDB 是一个很棒的文档数据库,它结合了关系数据库和文档数据库的优点。它完全符合 ACID,它有一个很棒的 Linq 提供程序,而且速度非常快,尤其是最新版本。
所以我的建议是,在尝试之前你永远不会知道确切的答案。到目前为止,我在 ravendb 上遇到的唯一问题是掌握索引。该文档缺少一些重要说明,我希望 Ayende 能尽快解决这个问题,否则,就去做吧。
顺便说一句,您也可以试试 MongoDB。它不符合 ACID,它也没有 Linq 提供程序,并且编写查询比您猜想的 RavenDB 更难,但它是用 C++ 编写的,具有原子 I/O 操作并且非常非常快。
关于c# - 选择数据库结构/引擎的指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9600366/