应用中的键值数据

时间:2011-08-24 13:00:29

标签: database-design project-management

管理其他表中使用的键值数据的最佳方法是什么。

每个新类型的表或一个包含区分不同类型的附加属性的表?

2 个答案:

答案 0 :(得分:1)

每种类型的表格 - 请参阅OTLT and EAV: the two big design mistakes all beginners make了解我在一张桌子上查看所有查找的内容。

答案 1 :(得分:1)

我不同意托尼·安德鲁斯(我赞成他的答案),但我会说,与大多数数据库设计问题一样,答案是“它取决于”。

在这种情况下,它取决于您在这里谈论的值的类型。如果你的系统的键值部分非常通用并且可能用于保存几乎任何东西,特别是重要的商业事实,那么Tony对OTLT的警告就很好了。

另一方面,如果您正在查看相对受限的密钥和值域,即可能出现在各种主表或事务表中的状态代码列表,那么OTLT的危险性并不严重。事实上,当您的系统需要国际化时,OTLT可以帮助您进行这些类型的代码查找,并且您的密钥会根据当前语言选择为您提供不同的值。请记住,这些可接受的场景不是真正的“OTLT”,只要您的多用途查找表不是所有目的。将范围限制为特定代码查找是可以的。由于Tony在博客中描述的原因,试图用EAV和OTLT替换你的DMBS是一个坏主意。

相关问题