Announcement

Collapse
No announcement yet.

Multilingual Design

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Multilingual Design

    Hallo

    Ich möchte ein kleines Programm schreiben, das etwas 50 Tabellen mit "relativ" statischen Inhalten hat. Eventuell werden alle Jahre 3-4 Einträge hinzugefügt.

    Die Einträge sollen Beschreibungen div. Punkte sein. Diese sollen aber Multilingual sein.
    PHP Code:
    CREATE TABLE `room_type` (
      `
    rmt_Uidchar(36NOT NULL,
      `
    rmt_Namevarchar(50),
      `
    rmt_Icontext,
      
    PRIMARY KEY(`rmt_Uid`) 
    Von diesem Beispiel gibt es also etwa 50 Verschiedene Tabellen.

    Ich habe eine Weitere Tabelle erstellt:
    PHP Code:
    CREATE TABLE `link_building_translation` (
      `
    lbtr_Idint(11UNSIGNED NOT NULL AUTO_INCREMENT,
      `
    loc_Idvarchar(5NOT NULL,
      `
    lbtr_Translationvarchar(50),
      `
    Multiple_Source_Uidchar(36),
      
    PRIMARY KEY(`lbtr_Id`),
      
    CONSTRAINT `Ref_83FOREIGN KEY (`loc_Id`)
        
    REFERENCES `locale`(`loc_Id`)
        
    ON DELETE NO ACTION
        ON UPDATE NO ACTION

    Standard sind alles englische Texte in den 50 Tabellen.
    Gibt es nun die Übersetzungen, wird in die Tabelle `link_building_translation`über die GUID ein Eintrag in der Sprache hinzugefügt.
    Das würde ja soweit passen, jedoch gibt es eine Referenzen.

    Kann man 50 Tabellen, die jeweils eine GUID haben, auf eine gemeinsame Tabelle referenzieren?
    Lösche ich einen Eintrag in einer der 50 Tabellen, sollen auch alle GUID´s in der `link_building_translation`gelöscht werden.

    Ich weiß das von einer Tabelle aus (mit einer UID) auf viele andere eine Referenz erstellt werden kann.
    Aber geht es auch andersrum?

    Oder soll ich für alle 50 Tabellen eine eigene Translation Tabelle machen?

    Danke!

    Fohnbit

  • #2
    Originally posted by unique24 View Post
    Kann man 50 Tabellen, die jeweils eine GUID haben, auf eine gemeinsame Tabelle referenzieren?
    Lösche ich einen Eintrag in einer der 50 Tabellen, sollen auch alle GUID´s in der `link_building_translation`gelöscht werden.

    Ich weiß das von einer Tabelle aus (mit einer UID) auf viele andere eine Referenz erstellt werden kann.
    Aber geht es auch andersrum?
    Also, Du hast eine, ich sag mal, Master-Tabelle und 50 Slave-Tabellen. Die Slaves referenzieren auf Einträge in der Master. Löscht man einen Eintrag in einer der 50 Slaves, willst Du, daß in der Master das auch gelöscht wird, ja?

    Prinzipiell: du kannst mehr als eine Referenz in den Slave-Tabellen auf den Master haben (gut, wäre mit UNIQUE vermeidbar), Du kannst aber auch in den 49 anderen Tabellen Referenzen auf die Master haben.

    Ich denke, Du wirst über einen TRIGGER nachdenken müssen, der dann in der Master löscht und dies mit CASCADE.


    Aber vielleicht solltest Du auch einfach prüfen, ob das wirklich 50 offenbar gleiche Tabellen sein müssen. Mir scheint, Du hast da einen Fehler im DB-Design.


    Andreas

    Comment


    • #3
      Hallo Andreas

      Ja, ich habe neu designed und nun passt alles in wenige Tabellen.

      mfg

      Comment

      Working...
      X