Mehrsprachige Produktkatalog

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrsprachige Produktkatalog

    Hallo zusammen,

    bin grad am überlegen wie man die Datenbankstruktur für einen kleinen Onlineshop am besten mehrsprachig gestaltet.

    Die aktuelle Sprache wir in $_SESSION["language"] gespeichert. (z.b. de, oder eng). Soweit kein Problem.

    Nun hab ich mir gedacht ich leg für jede Sprache eine seperate Tabelle an z.b. produkte_de. Die Abfrage würd ich dann in der art machen

    $tabelle = "produkte_" . $_SESSION["language"];

    select * from $tabelle ....

    Jede Tabelle wäre gleich gestaltet id, name, desc, preis, etc...

    Einziger Nachteil id und preis wären doppel gemoppelt, was zwar in dem Fall nicht schlimm ist da es nicht viel Artikel sind, aber trozdem will man sich ja immer verbessern und alles optimieren

    Oder könnte/sollte es man so machen, das wenn z.b. in einer sprachtabelle kein preis angegeben ist, er den einer anderen nimmt?

    Wäre über Tips wirklich dankbar.

    liebe grüße, dani

  • #2
    Hi,

    das kommt darauf an ob es für verschiedene länder unterschiedliche
    produkte gibt oder ob du deine anwendung einfach mehrsprachig
    haben möchtest.

    Im ersten fall würde ich der produkttabelle ein feld verpassen, dass
    die zugehörigkeit zum land kennzeichnet. Dann z.B. mittels
    Code:
    SELECT * FROM `products` WHERE `ctry`= 'de'
    auslesen.

    Wenn du eine mehrsprachige anwendung willst und das
    ganz auf datenbankbasis machen willst würde ich einfach
    eine tabelle translation anlegen.
    Code:
    id | de | en | ni | ja | .....
    Deine produkttabelle würde dann so aussehen.
    Code:
    id | name_id | descr_id | price | ....
    Um nun die richtige sprache anzuzeigen könnte man
    so vorgehen:
    PHP-Code:
    $lang $_SESSION['lang'];

    $q "SELECT `products`.`id`,
                  `products`.`price`,
                  `name`.`
    {$lang}`,
                  `descr`.`
    {$lang}
              FROM `products` 
                    LEFT JOIN  `translation` AS `name` ON `name_id` = `name`.`id` 
                    LEFT JOIN `translation` AS `descr` ON `descr_id` = `descr`.`id` 
              LIMIT 10" 
    Für den fall dass es keine übersetzung gibt sind die entsprechenden
    felder leer.

    greets
    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

    Kommentar

    Lädt...
    X