我有一个表products
和一个categories
表,它们都可以有选择地在images
表中具有相关记录。数据库设计:如何处理具有非唯一外键的表
images.fk
与1
的值可以指向categories.id
或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
?