我有一個表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
?