# Datenbank Design: Internationalisierte Texte -> Bitte um Feedback



## internet (10. Jan 2015)

Hallo zusammen, 

ich habe eine Vielzahl von verschiedene Entitäten. (Auto, Haus, Reifen, Tisch....). Sagen wir mal in der Zahl 50 Stück.
All diese Objekte haben einen Namen und eine Beschreibung.
Besonderheiten können ebenfalls auftreten, sodass ggf. ein weiteres Attribut hinzukommt.

Nun möchte ich diese Namen und Beschreibung aber in verschiedene Sprachen speichern können. Ich habe mir folgendes Konzept überlegt:

Beispiel:
Auto 1...n AutoLanguage
Haus 1....n HausLanguage

Die Entity *Haus* sieht folgendermaßen aus:
id  
create_date
update_date

So sieht dann *HausLanguage* aus:
id
name
description
language_code
create_date
update_date

Nun meine Frage:
a) Ist das sinnvoll das Design?
b) Wäre es sinnvoller nur eine Tabelle "Language" zu haben und dann jeweils einen Fremdschlüssel, der auf Haus, Tisch etc. verweist?
c) Gibt es andere Möglichkeiten.

Würde mich sehr über Erfahrung und Feedback freuen.
Vielen Dank schon Mal.


----------



## kaoZ (11. Jan 2015)

> Auto 1...n AutoLanguage



Ich muss es einfach Fragen : 

Warum hat ein Auto / ein Haus eine Sprache ? ^^

Rein vom logischen Aspekt her.

Da würde ich dazu übergeben und nur den Entitys eine Language Datei geben bei denen es auch Sinn macht , wie z.B Personen, Arbeitern, Texten, Büchern usw. usw.... aber Häusern ^^ ?!

Jetzt rein zu deinem Design, unabhängig zu dem Verwendeten Datenbankmodell ( ORM ) etc...


----------



## internet (11. Jan 2015)

Das waren erfundene Entitäten, es geht mir generell nur um das Design.
Wie meinst du das genau mit der Language Datei?

Wie würde das Modell aussehen?


----------



## Joose (12. Jan 2015)

Für eine "Language Datei" gibt es so kein Modell.

Du hast einfach für jede Sprache welche du unterstützt eine Datei mit Key/Value Werten drinnen.
Key ist einfach eine eindeutige ID und Value der Text in der entsprechenden Sprache
Jede Objekt muss dann nur noch wissen welche ID im Language File angesprochen werden muss.
Die korrekte "Language Datei" wird einfach durch die Einstellungen oder ähnliches festgelegt.

Suche hierzu einfach mal nach "java localization".

Wenn du es wirklich als DB umsetzen willst richte dich auch einfach danach.
Jeder Datensatz speichert einfach statt dem eigentlichen Text die entsprechende ID, mit dieser wird dann in der Sprachtabelle (mach einfach eine für alles) gelesen.


----------

