最顶层的数据库是最简单的数据库,但要查询给定雇员ID的雇员是否素食,则必须处理整个雇员列表。
底部的两个数据库使您可以简单地检查Vegetarian
表中是否存在员工ID,如果素食者的数量比员工的数量小得多,这将更快。
这是常见/可接受的做法吗?
在最底层的数据库中,我还添加了引用Vegetarian
表的外键,以允许我们已经拥有员工记录的O(1)检查素食状态(如果不是素食,则键值为null)。
最佳答案
您可以将最顶层的结构(单个表)与isVegetarian = True上的部分索引一起使用。该索引将很小,并提供与第二个结构相同的好处。