2

我要编写一本家政手册

所以我在类似的代码中创建属性NameCategory而其他一些需要在运行时创建。

那么我应该如何将人类可读的内容保存在 SQL Server 数据库中呢?

我的建议是创建一个名为Properties2 列 ( Id, Name) 的表,在该表中我可以存储我的所有属性,但它不再是人类可读的

我也不确定在一个大表中为每个属性创建一列是否明智

我也可以创建一个 XML“文件”并将其存储在我的数据库中,但我也不认为这是一个好主意

任何意见是极大的赞赏

4

1 回答 1

3

对于每个值,基本上有三个接近此 A 列

您建议的那个称为实体属性值模型

或者您打折的那个是 xml(或序列化对象)

它们都有优点和缺点,其中一些缺点可能会变得非常严重。

每个值的列意味着每次要存储更多数据时都必须更改数据库和模型,这使得它非常脆弱且维护成本很高。

EAV 很容易导致查询变成巨大的连接,并且对其强加数据完整性是一种隐藏。

基于对象还可能导致重大的优化和维护问题,例如,必须打开每个对象以查看其中是否有东西。

现在,如果您坚持使用关系数据库,那么在您做出决定时,这些中的任何一个都可能是最好的(它们在某个方面都是脆弱的)。

查看 NoSQL 替代方案之一,它们是为此类数据设计的。

于 2013-01-20T15:20:19.313 回答