我有一个表products
和一个categories
表,两者都可以选择在images
表中包含相关记录。
images.fk
值1
可以指向categories.id
or products.id
,因此我添加了一列images.related_to
。
当我想检索一个类别及其图像时,我使用
WHERE categories.id = images.fk AND images.related_to = 'categories'
但显然现在如果该类别没有图像,我的查询将不会返回任何内容,因为WHERE images.related_to = 'categories'
.
我可以通过首先运行查询来查看该类别是否有图像来解决这个问题,但这似乎不是一个好的解决方案。
images.fk
没有包含唯一值是否被认为是糟糕的设计?我应该有单独的categories.images
和products.images
表吗?那么,如果我也有users
, shops
,的图像suppliers
怎么办?