其他分享
首页 > 其他分享> > 值可以是几种不同类型时,如何管理键值对存储?

值可以是几种不同类型时,如何管理键值对存储?

作者:互联网

假设我有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