TLDR: 在性能,易管理性和您可能想到的任何其他考虑因素方面,每种数据库配置的优缺点是什么?
如果只有两种类型的'loc'ations并且只有两种类型的实体,那么这三种表配置中的每一种如何比彼此更好或更差:
.stringify
:
Config 1
loc | allow | entity | entity_type | loc_type
2 | True | jim | user | zone
29 | False | officer| class | quadrant
:
Config 2
zone | allow | entity | entity_type
2 | True | jim | user
&
quadrant | allow | entity | entity_type
29 | False | officer| class
:
Config 3
第一个示例将所有数据合并到一个表中(让我们称之为“权限”),并有额外的列定义loc和entity列中的数据类型。最后一个示例将它全部分解为4个表,这些表可能被命名为“zone_user_permissions”,“zone_class_permissions”,“quadrant_user_permissions”和“quadrant_class_permissions”。
中间的是第一个和第三个之间的妥协。
明显不同的是,第一个单表配置带有额外的列,因此存储的数据比上一个配置更多。第三个分布在多个表中,在某些情况下可能更难查询。
因此,假设所有表中的行大致相等,那么每种配置的优点和缺点是什么?