Multilinguale Webseite

Steffo

Benutzer
Beiträge
7
Hallo,
die Webseite, die ich entwerfen soll, soll früher oder später multilingual sein.
Ich frage mich nun, wie ich die DB entwerfen soll.

Mein Ansatz:
Country hat folgende Attribute:
  • Abbreviation (Key)
  • Language (Foreign Key + Key)
  • Name
Ein Datensatz kann z. B. so aussehen:
  • DE, DE, Deutschland
  • DE, EN, Germany
  • DE, IT, Germania
Location sieht dann so aus:
  • ZipCode (Key)
  • CountryAbbreviation (Foreign Key + Key)
  • Language (Foreign Key + Key)
  • Name
Ein Datensatz könnte dann so aussehen:
78462, DE, DE, Konstanz
78462, DE, EN, Constance
78462, DE, IT, Costanza

Ich finde das ganz schön kompliziert, aber mir fällt keine bessere Lösung ein!
Brauche daher Feedback! :)

Danke im Voraus!

L. G.
Steffo
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.160
Hallo,
die Webseite, die ich entwerfen soll, soll früher oder später multilingual sein.
Ich frage mich nun, wie ich die DB entwerfen soll.

Mein Ansatz:
Country hat folgende Attribute:
  • Abbreviation (Key)
  • Language (Foreign Key + Key)
  • Name
Ein Datensatz kann z. B. so aussehen:
  • DE, DE, Deutschland
  • DE, EN, Germany
  • DE, IT, Germania
Location sieht dann so aus:
  • ZipCode (Key)
  • CountryAbbreviation (Foreign Key + Key)
  • Language (Foreign Key + Key)
  • Name
Ein Datensatz könnte dann so aussehen:
78462, DE, DE, Konstanz
78462, DE, EN, Constance
78462, DE, IT, Costanza

Ich finde das ganz schön kompliziert, aber mir fällt keine bessere Lösung ein!
Brauche daher Feedback! :)

Danke im Voraus!

L. G.
Steffo

Wenn Du es so brauchst ist es okay. Icg würde aber die ersten 2 bzw. bei der 2. Tabelle 3 Felder als Primary Key definieren.
Code:
test=# create table country (abbrev text, language text, name text, primary key(abbrev,language));
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "country_pkey" for table "country"
CREATE TABLE
test=*# create table location (zipcode text, country_abbrev text, language text, name text, foreign key (country_abbrev,language) references country, primary key (zipcode, country_abbrev, language));
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "location_pkey" for table "location"
CREATE TABLE

Außerdem könnte man natürlich noch eine Tabelle mit erlaubten ISO-Kürzeln für Länder und Sprachen definieren (bekommt man im Indernet) und jeweils die Länder- bzw. Sprachbezeichnungen dagegen referrenzieren.
 

ukulele

Datenbank-Guru
Beiträge
4.409
  • CountryAbbreviation (Foreign Key + Key)
  • Language (Foreign Key + Key)
...sind dann allerdings in der 2ten Tabelle redundant. Eigentlich wäre das mit einem Fremdschlüssel auf Country abzubilden. Natürlich ist das jetzt bei der geringen Menge an Daten die sich wohl auch nie ändern witzlos...
 
Werbung:
Oben