首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何存储元数据数据类型

如何存储元数据数据类型
EN

Stack Overflow用户
提问于 2012-02-17 21:51:26
回答 2查看 1.2K关注 0票数 2

如何存储描述资产的元数据?考虑到我事先不知道我将拥有哪些元数据字段。

我有一个包含资产(假设是persons)的表,一个包含元数据字段("name“、"age”、"day of birth",...)的表。具有链接到元数据字段表的元数据值的表("John Doe",44,"1968-10-10",...)以及将元数据字段链接到资产的可交叉表元数据。

我的问题是如何处理元数据字段表中的不同数据类型。"John Doe“是文本,44是int,1968-10-10是日期。

我是否将这些数据存储在元数据字段表的txt字段中,但我是否可以比较日期?

或者我是否将数据类型存储在此表中,并为txt、int和date创建3个字段。但是我有很多空字段。

或者我为每种数据类型(例如: metadatafields_txt、metadatafields_int、metadatafields_date)创建不同的元数据字段表,但这样就不能正确地链接到元数据表。

这里的最佳实践是什么?

发送

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-17 22:05:25

所有这些都是有效的选项(在第一种情况下稍作修改-我将存储一个额外的字段来指示正在存储的数据类型,并在需要时进行适当的转换)。

第三种选择应该是可行的-而不是内部连接到一个表,而是在查询中将连接留给三个不同的表。

正如Eugen所说,这取决于--你是否事先大致知道有多少元数据记录(只是数量级-数千,数百万,更多?)你期望有,他们是否可能是压倒性的一种类型?

票数 1
EN

Stack Overflow用户

发布于 2012-02-17 22:01:38

答案的问题取决于您想要对元数据做什么:如果您只想存储它们,VARCHAR字段中的文本表示可能就足够了,它将简化您的查询。

当你想要查询你的元数据时,不要存储文本表示,否则你将被8<10'8'>'10'和朋友们的较量所烧毁。在这种情况下,我建议您使用一个包含3个字段的元数据表,或者甚至使用3个元数据表。我怀疑有3个字段的单个表是最好的选择--查询仍然非常容易,而且空间浪费也很容易管理( int是4字节,空的varchar是2或3字节)。

顺便说一句,对于其他数据类型,您可以很好地利用int字段:通过存储日期的unix时间戳,您可以避免以后使用UNIX_TIMESTAMP()FROM_UNIXTIME()。对于字符串,您可能需要长度(例如,如果您使用C-ish API)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9329439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档