我正在嘗試創建壁紙共享庫,並且我希望我的訪問者能夠在壁紙和文章上發佈評論。SQL如何引用變量列
比方說,我有如下表:
Wallpaper
- id
- name
- etc...
Article
- id
- title
- etc...
Comment
- id
- text
我想評論要關聯到任何一個獨特的牆紙或獨特的文章。
我想過讓繼承這樣的:
Commentable
- id
Article
- id references Commentable.id
- etc...
Wallpaper
- id references Commentable.id
- etc...
Comment
- id
- commented references commentable.id
但這種方法看起來很重,而不是真的很好。
我也想過做:
Wallpaper
- id
- name
- etc...
Article
- id
- title
- etc...
Comment
- id
- commented references either Wallpaper.id or Article.id
但就沒有辦法知道,如果相關的事情是一個壁紙或一篇文章。
另外我想使用MyISAM而不是InnoDB,因爲我會在5.1 MySQL的免費Web主機服務上進行此操作。
你知道有什麼明確的方法嗎?提前致謝。
編輯:感謝大家的答案。
感謝您的回答。我已經考慮過第一個,但是這會留下NULL的50%(並且如果我有兩個以上的表參考)。 「修改schéma評論」是什麼意思? – Virus721
@ Virus721假設您有一個名爲Story的用戶可以評論的新表。使用選項1,您將不得不修改模式以適應此。與選項2不同。您對使用NULL列有什麼擔憂? – RedFilter
我可以根據需要修改架構,這不是問題。有很多可以通過使用「更清晰」模式可以避免的NULL值的事實聽起來不是很好。我想我會去第二選擇。 – Virus721