So… is this bad DB design to use null to mean that an item has no color? Should I instead put a special row in `colors`, maybe with id = 0, to represent the “no color” value? Or is there some way to make an index work with nulls and `is not distinct from`?
Not sure about getting is distinct to work with indexes but in this particular case I would add a "colorless" color to the table and make the column constraint not null.
David J.