RDBMS 一对一关系更高效的查找?

RDBMS one-one relationship for more efficient look up?

最上面的数据库是最简单的,但是要根据员工 ID 查询员工是否素食,它必须处理整个员工列表。

下面的两个数据库可以让你简单的检查Vegetariantable中是否存在员工ID,如果素食者列表比员工列表小得多,这会更快.

这是common/acceptable的做法吗?

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

您可以使用最顶层结构——单个 table——在 isVegetarian=True 上使用部分索引。该索引将很小,并提供与您的第二个结构相同的好处。