| 

.NET C# Java Javascript Exception

2
Hallo zusammen...

Ich bin ein ziemlicher Anfänger zum Thema Datenbanken. Da ich nun ein kleines Projekt gestartet habe würde ich gerne folgendes machen:

Es existiert ein tabelle "languages":
id / lang / title
1 / english / en
2 / deutsch / de
3 / francais / fr

Desweiteren exisiteren mehrere Tabellen mit mehreren Produkten und deren Angaben.
Da schlussendlich alle weiteren Tabellen mit den vorhanden Sprachen aus der Tabelle "languages" erweitert werden sollten, frage ich mich ob dies automatisch möglich ist.

Schliesslich sollte es so sein:
Wenn eine weitere Sprache - zb "italiano" - in "languages" eingefügt wird, soll diese in den weiteren Tabellen ebenfalls auftauchen als zusätzliche Spalte.

Ich verwende MariaDB und verwalte diese über HeidiSQL 8.0.0.4396 - womit ich momentan für mein Projekt - ganz gut zurechtkomme.

MlG, Andreas
News:
12.02.2014
1
Ein fast gleiches Problem hatte ich die Tage auch. Du kannst eigentlich nur prüfen, ob es alle Spalten gibt und wenn nicht, ergänzen. Ich könnte mir spontan gut vorstellen, dass man das in einer stored procedure erledigen könnte.
muffi 12.02.2014
3 Antworten
2
Ganz schwer bis garnicht möglich und auch absolut nicht ratsam!!!

Lieber so:

id / lang / title
1 / english / en
2 / deutsch / de
3 / francais / fr

id / Name / Beschreibung / Sprache
1 / Axe / ihrgendwas englisches / 1
1 / Axt / ihrgendwas deutsches / 2
2 / lalala / ................ / 1
3 / ihrgendwas / ..... / 1

Dazu noch nen extra Schlüssel oder zusammensetzen aus [id] und [Sprache]

So sollte es vom Prinzip her gehen, wenn ich dich richtig verstanden hab. ^^
12.02.2014
DerPunk 1,2k 1 7
2
Aus Datenbankdesignersicht ist die optimale Vorgehensweise wohl so:

Tabelle Languages: LanguageId/Name
1/en
2/de

Tabelle Texts: TextId/LanguageId/Text
1/1/Something
1/2/Etwas

Tabelle IrgendwasAnderes: AndereId/AndereFelder/TextId
1/blub/1
etc.

Dadurch können Sprachen und Texte dynamisch erweitert werden, ohne dass man das Datenbankdesign und damit die darauf basierenden Abfragen anpassen muss.
13.02.2014
sgf 426 3
0
Hallo und danke für die Antworten.

Ich könnte doch auch einfach eine Tabelle der Sprachen anlegen:
Item-ID / de / en / fr
1 / Auto / Car / Voiture
2 / Fahrrad / bicycle / bicyclette
3 / Stein / Stone / Pierre

Und eine andere Tabelle mit den Werten:
ID / Item-ID / Preis / Höhe / Breite / Länge
1 / 1 / 10'000 € / 1.5m / 2.0m / 5.0m
2 / 2 / 100 € / 1.0m / 0.6m / 2.0m
3 / 3 / 1 € / 0.1m / 0.2m / 0.2m

-----------------
Jedesmal wenn ich dann noch eine Sprache hinzufüge, brauch ich diese nur in der Sprachtabelle eintragen und man hat danach schon die Qual der Wahl von der Sprache. Ist dies sinnvoll?

Andreas
13.02.2014
1
Deine ursprüngliche Frage habe ich so verstanden, dass Du automatisiert Spalten hinzufügen möchtest. Der Ansatz ist manuell, würde ich persönlich in dem Fall bevorzugen, denn die "Sprachentabelle" wird sich ja wohl hoffentlich nicht so oft ändern.
muffi 13.02.2014
2
Aber für neue Werte (Sprachen) neue Spalten hinzufügen zu müssen, ist einfach keine vernünftige Lösung in meinen Augen...
DerPunk 13.02.2014

Stelle deine Werte-Frage jetzt!