单独的表还是带有查询的单个表?

单独的表还是带有查询的单个表?

我正在制作一个员工信息数据库。我需要处理已从公司离职的员工。我应该 a. 使用宏设置查询以将离职员工发送到单独的表,还是 b. 仅在单个表中添加一个表示离职的标志?

我知道选择 b 是最佳做法,我能想到的一个原因是,我稍后对表进行的任何结构更改都必须在两个地方进行。但设置标志似乎也迫使我在以后要进行的每个有用查询中过滤掉该标志。

答案1

这就是观点的意义所在。

使用一个带有标志的表,然后创建 2 个视图 - 一个选择标志设置,一个选择标志未设置。视图不需要包含标志本身 - 仅包含您实际需要的数据子集的列。

这样,您就可以轻松使用单独的表并实现单个表的优化。

以下是帮助您开始使用视图的教程。

答案2

笔记:似乎你可以在视图上创建索引. 这将增强一张表和两种观点的分量。

这是性能与关系正确性的问题。最“纯粹”的方法是使用一张表。但是,在大多数情况下,两张表的性能会更好。即使您的所有查询都是针对此表上以 side flag 开头的多值索引,查询两张较小的表之一也会更快。这是因为您的索引将包含一个字段和更多记录(更宽更长的索引)。

如果你需要查询这两组数据,你可以这样做联盟。这样会比较慢。不过,我认为这些操作很少见。

相关内容