如何在数据库中保存未知属性
本文关键字:保存 未知 属性 数据库 | 更新日期: 2023-09-27 17:54:31
我要编写一个家政手册
所以我在代码中创建属性,如Name
, Category
和其他需要在运行时创建的。
那么我应该如何在SQL Server数据库中保存人类可读的内容?
我的建议是创建一个名为Properties
的表,有2列(Id, Name
),在这个表中,我可以存储我所有的属性,但它不再是人类可读的
我也不确定在一个大表中为每个属性创建一个列是否明智
我也可以创建一个XML"文件"并将其存储在我的数据库中,但我不认为这是一个好主意
请多多指教
基本上有三种方法每个值
的列您建议的实体属性值模型
或者你贴现的xml(或序列化对象)
它们都有优点和缺点,有些缺点可能会很严重。
每个值对应一列意味着每次你想要存储更多的数据时,你必须更改数据库和模型,这使得它非常脆弱和高维护。
EAV可以很容易地导致查询变成巨大的连接,强加数据完整性在它上面是一个隐藏什么。
基于对象也可能导致重大的优化和维护问题,例如,必须打开每个对象以查看其中是否有内容。
如果你坚持使用关系数据库,那么在你做决定的时候,它们中的任何一个都可能是一堆坏东西中的最好的(它们在某个方面都是脆弱的)。
看看NoSQL的一个替代方案,它们是为这种类型的数据设计的。