我有一个用于某些用途的表,例如:
一个名为tblObject
的对象的表,需要存储一些属性;所以,我可以使用以下解决方案之一:
tblObjProp
中添加一个与下面模型相关的外键字段,我需要另一个字段来存储变量值:+-----------+ +------------+ +-------------+
| tblObject | 1-----* | tblObjProp | *-----1 | tblProperty |
+-----------+ +------------+ +-------------+
我认为使用此解决方案是基于属性计数,因为我不知道计数,我需要像本网站中的推荐一样引用以识别该计数或任何其他推荐。
此外,我还需要value
中tblObjProp
字段的数据类型的建议,在SQL中我有sql_variant
或nvarchar(max)
等等。
如果答案与RDBMS相关,我需要 SQL Server 2012 和 Oracle 11g 。
如果我的Person
表格中包含Id, FirstName, LastName, BirthDate, Comments, NID, ...
列,则每列都有一个选项:
Person
表格中将其设为静态。tblProperty
。我想知道我应该总是选择第二个选项,例如Comments
或NID
第一选择更好?
答案 0 :(得分:0)
如果您知道属性的数量,并且这个数字不会经常变化,那么我会选择解决方案1,因为这样可以正确索引字段(我的想法是正确的数据库设计)。
但是如果每行的属性数量可能不同,并且频繁添加属性,那么我已经看到了解决方案2(google"键值对")。当你获得大量物品(我的经验数百万)你持有物品的物品时,这种解决方案变得非常缓慢。