Ok, hier mal ein Beispiel einer möglichen Struktur.
Diese Tabelle soll, den Namen eines Landes (in beliebig vielen Sprachen) und dessen gesamtfläche speichern.
Diese Tabelle soll, den Namen einer Stadt (in beliebig vielen Sprachen) und dessen Einwohnerzahl speichern.
In dieser Tabelle stehen alle namen der DB-Tabellen in dennen sprachvariablen vorkommen können.
In dieser Tabelle stehen die Namen der DB-Felder die normalerweise in den Tabellen Laender bzw. staedte stehen würden
In dieser Tabelle stehen die sprachen die zur verfügung stehen sollen.
Diese Tabelle verbindet dann alles miteinander und kann auch anhand der gespeicherten daten, den eintrag in dem die übersetzung verwendet werden soll zurückverfolgen.
Mit beliebig erweiterbar meine ich dass im nachhinein z.b. noch die Tabelle sehenswürdigkeiten dazu kommen kann.
Somit muss ich nur noch die tabelle "tables" erweitern
Und kann dann in der "tables_fields_langs_texts" meine übersetzungen einbauen und problemlos zurückverfolgen
Hoffe das jetzt klar ist was ich meine.
Was ich im Endeffekt wissen will ist ob Ihr Probleme mit der Art des aufbaus seht die ich vielleicht übersehen habe.
Ein Problem dass z.b. Creator gesehen hat, ist das durchsuchen von so einem Monstrum.
Als Lösung hat er dann forgeschlagen eine Indextabelle zu erstellen die überflüssige wörter nicht speichert und somit leichter ist.
Obwohl es meiner meinung nach fraglich ist um wieviel sie leichter wird. Aber dass ist ein anderes Thema, da ich so eine Index Tabelle jederzeit nachrüsten kann.
Diese Tabelle soll, den Namen eines Landes (in beliebig vielen Sprachen) und dessen gesamtfläche speichern.
Code:
laender +------+---------+ | trid | flaeche | +------+---------+ | 1 | 400qm | +------+---------+ | 2 | 200qm | +------+---------+
Code:
staedte +------+-----------+ | trid | einwohner | +------+-----------+ | 1 | 1000 | +------+-----------+ | 2 | 4000 | +------+-----------+
Code:
tables +-----+---------+ | tid | name | +-----+---------+ | 1 | laender | +-----+---------+ | 2 | staedte | +-----+---------+
Code:
fields +-----+------+ | fid | name | +-----+------+ | 1 | name | +-----+------+
Code:
langs +-----+------+ | lid | name | +-----+------+ | 1 | de | +-----+------+ | 2 | en | +-----+------+
Code:
tables_fields_langs_texts +-----+-----+-----+-----+------+-------------+ | id | tid | fid | lid | trid | txt | +-----+-----+-----+-----+------+-------------+ | 1 | 1 | 1 | 1 | 1 | Deutschland | # Tabelle "laender" feld "name" sprache "de" id "1" +-----+-----+-----+-----+------+-------------+ | 2 | 1 | 1 | 2 | 1 | Germany | # Tabelle "laender" feld "name" sprache "en" id "1" +-----+-----+-----+-----+------+-------------+ | 1 | 1 | 1 | 1 | 2 | Frankreich | # Tabelle "laender" feld "name" sprache "de" id "2" +-----+-----+-----+-----+------+-------------+ | 2 | 1 | 1 | 2 | 2 | France | # Tabelle "laender" feld "name" sprache "en" id "2" +-----+-----+-----+-----+------+-------------+ | 5 | 2 | 1 | 1 | 1 | München | # Tabelle "staedte" feld "name" sprache "de" id "1" +-----+-----+-----+-----+------+-------------+ | 6 | 2 | 1 | 2 | 1 | Munich | # Tabelle "staedte" feld "name" sprache "en" id "1" +-----+-----+-----+-----+------+-------------+ | 7 | 2 | 1 | 1 | 1 | Rom | # Tabelle "staedte" feld "name" sprache "de" id "2" +-----+-----+-----+-----+------+-------------+ | 8 | 2 | 1 | 2 | 1 | Rome | # Tabelle "staedte" feld "name" sprache "en" id "2" +-----+-----+-----+-----+------+-------------+
Code:
sehenswuerdigkeiten +------+------------------+ | trid | oeffnungszeiten | +------+------------------+ | 1 | 9:00 - 14:00 | +------+------------------+ | 2 | 8:00 - 20:00 | +------+------------------+
Code:
tables +-----+---------------------+ | tid | name | +-----+---------------------+ | 3 | sehenswuerdigkeiten | +-----+---------------------+
Code:
tables_fields_langs_texts +-----+-----+-----+-----+------+-------------------+ | id | tid | fid | lid | trid | txt | +-----+-----+-----+-----+------+-------------------+ | 9 | 3 | 1 | 1 | 1 | Eifelturm | # Tabelle "sehenswuerdigkeiten" feld "name" sprache "de" id "1" +-----+-----+-----+-----+------+-------------------+ | 10 | 3 | 1 | 2 | 1 | eifel tower | # Tabelle "sehenswuerdigkeiten" feld "name" sprache "en" id "1" +-----+-----+-----+-----+------+-------------------+ | 11 | 3 | 1 | 1 | 2 | freiheitsstatue | # Tabelle "sehenswuerdigkeiten" feld "name" sprache "de" id "2" +-----+-----+-----+-----+------+-------------------+ | 12 | 3 | 1 | 2 | 2 | statue of liberty | # Tabelle "sehenswuerdigkeiten" feld "name" sprache "en" id "2" +-----+-----+-----+-----+------+-------------------+
Was ich im Endeffekt wissen will ist ob Ihr Probleme mit der Art des aufbaus seht die ich vielleicht übersehen habe.
Ein Problem dass z.b. Creator gesehen hat, ist das durchsuchen von so einem Monstrum.
Als Lösung hat er dann forgeschlagen eine Indextabelle zu erstellen die überflüssige wörter nicht speichert und somit leichter ist.
Obwohl es meiner meinung nach fraglich ist um wieviel sie leichter wird. Aber dass ist ein anderes Thema, da ich so eine Index Tabelle jederzeit nachrüsten kann.
Kommentar