我目前正在努力重新设计我们应用程序的数据系统。基本上,它的设计目的是让人们可以添加他们想要的所有自定义字段,而只有一些常量/始终存在的字段。
我们当前的设计给我们带来了很多维护问题。我们所做的是动态地(在运行时)为每个字段向数据库添加一列。我们必须有一个元表和其他东西来维护所有这些动态列。
现在我们在看EAV,但看起来也好不了多少。基本上,我们有许多不同类型的字段,因此会有一个 StringValues、IntegerValues 等表......这使事情变得更糟。
我想知道在数据库中使用 JSON 或 XML blob 是否可能是更好的解决方案,特别是因为在大多数用例中,当我们从这些表中检索任何内容时,我们需要整行。问题是我们还需要能够为这些数据创建报告。没有任何解决方案真正使自定义查询看起来很容易。当报告运行时,在这样的 blob 数据库中进行搜索肯定会成为性能噩梦。
每个“行”需要有大约 15 到 100 个(可能更多)与其关联的属性/列。
我们使用 SQL Server 2008,与数据库连接的应用程序是 C# Web 应用程序(即 ASP.Net)。
你怎么认为?使用 EAV 或 blob 或完全使用其他东西? (另外,是的,我知道像 MongoDB 这样的无模式数据库在这里会很棒,但我无法说服我的老板使用它)
xml 数据类型怎么样?可以针对此类型进行高级查询。
我们使用 xml 类型并取得了良好的成功。我们在代码级别使用 linq 解析值来完成大部分繁重的工作。我们的架构有些固定,因此这可能不适合您。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)