phpbar.de logo

Mailinglisten-Archive

[php] [OT] Datenbankdesign mit Mehrsprachigkeit

[php] [OT] Datenbankdesign mit Mehrsprachigkeit

Ralf Eggert r.eggert at travello.de
Sam Nov 25 11:25:53 CET 2006


Hallo Lutz,

> probier mein Beispiel doch mal unter 4.0. Vielleicht funktioniert es da 
> ja auch. ;-)

jetzt fallen die Groschen hier Pfennigweise... ;-)

  CREATE TABLE `child` (
    `id` int(11) NOT NULL auto_increment,
    `parent_id` int(11) default NULL,
    `name` varchar(16) NOT NULL default '',
    PRIMARY KEY  (`id`),
    KEY `par_ind` (`parent_id`)
  ) TYPE=InnoDB AUTO_INCREMENT=3 ;

  INSERT INTO `child` VALUES (1, 1, 'Peter');
  INSERT INTO `child` VALUES (2, 2, 'Hannes');

  CREATE TABLE `parent` (
    `id` int(11) NOT NULL default '0',
    `lang` char(2) NOT NULL default '',
    `name` varchar(16) NOT NULL default '',
    PRIMARY KEY  (`id`,`lang`)
  ) TYPE=InnoDB;

  INSERT INTO `parent` VALUES (1, 'de', 'verheiratet');
  INSERT INTO `parent` VALUES (1, 'en', 'married');
  INSERT INTO `parent` VALUES (2, 'de', 'geschieden');
  INSERT INTO `parent` VALUES (2, 'en', 'divorced');

  SELECT child.name, parent.name
  FROM child
  LEFT JOIN parent
  ON child.parent_id = parent.id
  AND parent.lang = 'de'

Wenn ich englisch will, ändere ich nur den Sprachschlüssel in der SELECT
Abfrage ab. Es funktioniert also auch unter 4.0.25. Wenn ich das Ganze
nun noch mit dem DBDesigner4 gestalten kann, bin ich zufrieden :-)

Gruß,

Ralf

php::bar PHP Wiki   -   Listenarchive