Angenommen, ich eine Tabelle mit den folgenden Spalten (eine Liste von Worten):Single-Table-Vererbung oder zwei Tabellen?
word: varchar
contributor: integer (FK)
Nun, ich nehme an Übersetzungen für jedes „Wort“ haben wollte. Was wäre das Beste? Einen zweiten Tisch haben?
word: integer (FK)
translation: varchar
contributor: integer (FK)
lang: integer (FK)
Oder alle in der gleichen Tabelle?
word: varchar
translation_for: integer (FK - to the same table)
contributor: integer (FK)
lang: integer (FK)
Es wäre zwei Szenarien (1), wo ich ein übersetztes Wort ziehen zusammen mit dem ursprünglichen Wort, um es von übersetzt wurde, (2), wo ich brauche nur das übersetzte Wort zu ziehen. In beiden Szenarien würde ich die "ursprünglichen" Wörter viel stärker verwenden (sowohl SELECT als auch UPDATEing/INSERTing).
Also, welcher Ansatz wäre am besten für jedes Szenario oder im Allgemeinen? Ich bin zum ersten Ansatz geneigt, da dann meine "Standard" SELECTs nicht durch die Spalte lang qualifiziert werden müssen. Was denken Sie?
Danke!