假设我有一个包含以下列(单词列表)的表:
word: varchar
contributor: integer (FK)
现在,假设我想为每个“单词”翻译。什么是最好的?有第二张桌子吗?
word: integer (FK)
translation: varchar
contributor: integer (FK)
lang: integer (FK)
还是都在同一张桌子上?
word: varchar
translation_for: integer (FK - to the same table)
contributor: integer (FK)
lang: integer (FK)
假设有两种情况,(1)我需要提取一个翻译后的词以及它翻译自的原始词,(2)我只需要提取翻译后的词。在这两种情况下,我都会更频繁地使用“原始”词(SELECTing和UPDATEing/INSERTing)。
那么,哪种方法最适合每种情况或一般情况?我倾向于第一种方法,因为那时我的“默认”选择不必由lang列限定。你怎么看?
谢谢!