2016-05-15 18 views
1

Ich möchte eine Datenbank für Englisch-Deutsch Wörterbuch erstellen.Entwerfen der Datenbank für ein Wörterbuch

Ich habe keine Ahnung, wie ich das entwerfen würde.

Wenn jedes Wort eine Bedeutung hätte, hätte ich nur 2 Datenbanken - englische Wörter und Deutsch Wörter - und verknüpfe sie dann miteinander.

Selbst eine Einbahnstraße wäre wahrscheinlich für mich ausreichend. Ich könnte also nach Deutsch-Arbeit fragen und alle englischen Wörter damit verknüpfen (aber ein englisches Wort sollte immer noch mit mehreren deutschen Wörtern verlinkt sein).

Also, wie würdest du das tun? Denk ich falsch darüber?

Antwort

2

Während Paparazzi eine sehr definitive answer zur Verfügung gestellt hat, möchte ich nur ein paar weitere Details hinzufügen, wie Ihre Datenbank sein könnte.

könnten Sie haben:

  • Ein Tisch für englische Wörter
  • Ein Tisch für Deutsch Wörter
  • Eine Tabelle verbinden diese Tabellen

Siehe unten verlinken:

       +-----------------+       
           | TRANSLATION  |       
           +-----------------+       
    +---------+  +-------| ENGLISH_ID (PK) |    +---------+ 
    | ENGLISH |  |  | DEUTSCH_ID (PK) |-------+  | DEUTSCH | 
    +---------+  |  +-----------------+  |  +---------+ 
    | ID (PK) |<------+         +------>| ID (PK) | 
    | WORD |             | WORD | 
    +---------+             +---------+ 

Um den Deutsch zu finden Übersetzung (en) für ein englisches Wort, verwenden Sie die folgende Abfrage:

SELECT 
    d.word 
FROM deutsch d 
JOIN translation t 
    ON d.id = t.deutsch_id 
JOIN english e 
    ON e.id = t.english_id 
WHERE e.word = :english_word 

Um die englische Übersetzung (en) für ein Deutsch Wort, verwenden Sie die folgende Abfrage zu finden:

SELECT 
    e.word 
FROM english e 
JOIN translation t 
    ON e.id = t.english_id 
JOIN deutsch d 
    ON d.id = t.deutsch_id 
WHERE d.word = :deutsch_word 
+0

Nur um sicherzustellen, dass ich get this - das bedeutet, ich werde mehrere "Übersetzungs" -Reihen für einzelne "englische" Zeile haben (wenn nötig), oder? Sonst vielen Dank. Das hat mir wirklich geholfen. –

+0

@ DavidMašek Dieser Ansatz ist sehr flexibel. Neben anderen Kardinalitäten erlaubt es Ihnen mehrere deutsche Wörter für ein englisches Wort zu haben. –

1

haben gerade einen Tisch mit einem zusammengesetzten Schlüssel von

EnglishID beitreten, DeutschID

Sie haben 1: 0, 0: 1, 1: viele, viele: 1, oder viele: viele

Verwandte Themen