值可以是几种不同类型时,如何管理键值对存储?
作者:互联网
假设我有n个属性(键值对),它们是日期,数字或字符串.哪种数据模型最有效地存储它们?
这是我考虑过的解决方案:
数据表的每一行必须能够链接到几种类型的n个属性.
此解决方案的优点是,如果要添加新类型,只需添加两个新表(label_xy和value_xy),而不用修改现有表的结构.但是,这种解决方案真的是最方便的一种吗?
您将如何做到这一点?
谢谢 :)
解决方法:
我已经使用了所有方案:
>您描述的那个(每个数据类型在自己的表中)
> Anthony的答案之一-仅按需将值字符串转换为迭代的数据类型
>一个表,其中包含具有不同数据类型的几列,其中每条记录仅使用一个(其余为稀疏列)
从这些解决方案中:1.加入了地狱,2.如果您的数据主要是字符串,则很好; 3.尽管迄今为止一些占用空间最大的方法是最好和最有效的.
至于3.我必须解释一下该表如下所示:
EntityID int,
TypeID int,
LabelID int,
ValueInt int,
ValueDecimal decimal(12,4),
ValueString nvarchar(max),
ValueDate datetime
(尽管LabelID定义了TypeID,但我同时将它们用于减少联接的目的.)
标签:database-design,data-modeling,mysql,database 来源: https://codeday.me/bug/20191031/1979832.html