RDBMS一对一关系可以更有效地查找?

时间:2017-06-28 03:22:32

标签: mysql database foreign-keys relational-database rdbms

enter image description here

最顶级的数据库是最简单的,但要查询员工是否是素食员,并且必须处理整个员工名单。

底部的两个数据库允许您简单地检查Vegetarian表中是否存在员工ID,如果素食者列表比员工列表小得多,这将会快得多。

这是一种常见/可接受的做法吗?

在最底层的数据库中,我还添加了一个引用Vegetarian表的外键,以便O(1)检查素食状态(如果不是素食者,则键值将为空)如果我们已经有员工记录。

1 个答案:

答案 0 :(得分:1)

你可以使用最顶层的结构 - 单个表 - isVegetarian = True的部分索引。索引很小,并且与第二个结构具有相同的好处。