sql - 如何为属性未知的数据建模?

标签 sql ruby-on-rails database-design nosql data-modeling

有什么好的方法可以对需要查询但无法完全定义的数据建模?

例如...说我想对世界各国的信息进行建模。每个国家都有人口,旗帜和语言列表,这很容易。但是要说,我们也想为他们的国家棒球队的胜负记录建模,当然,并非所有国家都有。或者,我们要跟踪其国王和王后的血统(再次,显然不适用于大多数国家/地区)。或者,我们决定我们要模拟平均家族成员一生中将竖立的蒙古包的数量。

无论如何,重点是,直到它击中我们,我们才(永远不会)知道会发生什么。有哪些既可扩展又可查询的方法?

这对于以文档为中心的数据库(MongoDB?)也许是一个很好的用途,或者某些设计模式可以应用于经典的Relational数据库?

最佳答案

您可以在纯关系数据库中做到这一点,并享受关系数据库的速度和强大功能。

您需要使用第六范式,这是具有完整完整性和控制力的正确方法。

EAV是6NF的子集,没有完整性或控制权,通常实施得很差。

我对这些问题的回答提供了对该主题的全面处理。由于上下文和论点的提出,最后一个特别长。

EAV-6NF Answer One
EAV-6NF Answer Two
EAV-6NF Answer Three

关于sql - 如何为属性未知的数据建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4823246/

相关文章:

mysql - 在 mysql 中删除主键

SQL Server 填充缺失记录

SQL 错误 Turkish_CI_AS 和 SQL_Latin1_General_CP1_CI_AS

ruby-on-rails - foo.try(& :to_s?) 和 foo.try(:to_s?) 有区别吗

ruby-on-rails - 您推荐哪个 RVM 和 Ruby 版本?

sql - 为我的应用程序的每个问题创建不同的用户!

mysql - mysql有没有办法允许2个外键中的1个为空?

mySQL 多重重复处理(Dupes in Dupes)

mysql - 数据库归一化 2NF 和 3NF

ruby-on-rails - SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B : certificate verify failed on WINDOWS