在外键列中,我应该使用null或0来表示"没有值"

时间:2015-06-27 03:17:31

标签: postgresql postgresql-9.4

假设我有一个items表,其中一列是color_id,是colors表的外键。并非所有项目都有颜色。如果使列可以为空,那么当我在where子句中引用颜色时,我可能需要使用

where color_id is not distinct from ?

而不是更简单的

where color_id = ?

...如果?可能为null,则搜索没有颜色的项目。这是一个坏主意吗?我不介意详细说明,但我正在阅读{strong>索引不能为is not distinct from工作的地方,我的第一个实验证实了这一点。使用is not distinct from的查询比使用=的查询花费更长的时间。

最好在colors中创建一行代表"没有颜色",可能代表id = 0,然后让items.color_id代表not null列?

0 个答案:

没有答案