Datenbankfragen
-
Hallo,
ich habe zwei (einfache?) Fragen zu Datenbanken.
Habe eine Tabelle.
Die Tabelle besitzt ein Attribut "Bild". Ich möchte mit diesem Attribut Bilder abspeichern. Die Bilder sind auf der Festplatte gespeichert. Einfach den relativen Pfad von der Datenbank aus zum Bild abspeichern im Attribut "Bild"? Oder anders?
2te Frage:
Die Tabelle hat ein ein weiteres Attribut, ein Textattribut. Den Text des Textattributs brauche ich in zwei Sprachen, in Deutsch und Englisch. Wie mache ich das in der DB? Zwei Attribute machen? Attribut "Text_Englisch" und "Text_Deutsch"? Oder anders?Danke schon mal.
-
Die Tabelle besitzt ein Attribut "Bild". Ich möchte mit diesem Attribut Bilder abspeichern. Die Bilder sind auf der Festplatte gespeichert. Einfach den relativen Pfad von der Datenbank aus zum Bild abspeichern im Attribut "Bild"? Oder anders?
Ich würde hier nur die Pfade zu den Bilder speichern und nicht das Bild direkt.
Die Tabelle hat ein ein weiteres Attribut, ein Textattribut. Den Text des Textattributs brauche ich in zwei Sprachen, in Deutsch und Englisch. Wie mache ich das in der DB? Zwei Attribute machen? Attribut "Text_Englisch" und "Text_Deutsch"? Oder anders?
Sollen noch mehrere Sprachen hinzukommen können? Wenn Nein, dann kannst du dies so machen, aber wenn ja, würde ich noch eine zweite Tabelle erstellen auf die Referenziert wird.
z. B. könntest du deine vorhandene Tabelle am schluss mit einem Attribut fk_language_id erweitern und in die Sprachtabelle wie folg aufbauen:Tabelle Sprachen:
------------------
ID
Language
Text
-
Wenn ich das richtig verstehe, dann darf ID in der Tabelle Sprachen kein Primärschlüssel sein, dann funzt es.
Verstehe ich das richtig!?
-
Also ich würde diesen als Primärschlüssel deklarieren.
Über fk_language_id kannst du in der Sprach Tabelle den Text auslesen.
-
Das verstehe ich jetzt nicht.
Imo darf das kein Primärschlüssel sein.
Wenn ich die Tabelle so aufbaue:
Tabelle Sprachen (ID, Sprache, Text):
1, Englisch, "Good evening"
1, Deutsch, "Guten Abend"
1, Französisch, "Bonsoir"
2, Englisch, "Good morning"
2, Deutsch, "Guten Morgen"
2, Französisch, "Bonjour"fk_language_id in der bereits vorhandenen Tabelle hat dann den Wert 1 oder 2 (in diesem Falle) und ich kann die entsprechenden Einträge auslesen.
Wie würde das denn funzen wenn ich ID als Primärschlüssel deklariere?
-
rewe schrieb:
Das verstehe ich jetzt nicht.
Imo darf das kein Primärschlüssel sein.
Wenn ich die Tabelle so aufbaue:
Tabelle Sprachen (ID, Sprache, Text):
1, Englisch, "Good evening"
1, Deutsch, "Guten Abend"
1, Französisch, "Bonsoir"
2, Englisch, "Good morning"
2, Deutsch, "Guten Morgen"
2, Französisch, "Bonjour"fk_language_id in der bereits vorhandenen Tabelle hat dann den Wert 1 oder 2 (in diesem Falle) und ich kann die entsprechenden Einträge auslesen.
Wie würde das denn funzen wenn ich ID als Primärschlüssel deklariere?Wenn du Sie so aufbauen möchtest, dann darf diese natürlich kein Primärschlüssel sein, dies ist korrekt. Dennoch würde ich eine Spalte hinzufügen (z. B. Obj_ID) das die Datensätze eindeutig identifiziert. Also nen Primary Key.
-
guenni81 schrieb:
rewe schrieb:
Das verstehe ich jetzt nicht.
Imo darf das kein Primärschlüssel sein.
Wenn ich die Tabelle so aufbaue:
Tabelle Sprachen (ID, Sprache, Text):
1, Englisch, "Good evening"
1, Deutsch, "Guten Abend"
1, Französisch, "Bonsoir"
2, Englisch, "Good morning"
2, Deutsch, "Guten Morgen"
2, Französisch, "Bonjour"fk_language_id in der bereits vorhandenen Tabelle hat dann den Wert 1 oder 2 (in diesem Falle) und ich kann die entsprechenden Einträge auslesen.
Wie würde das denn funzen wenn ich ID als Primärschlüssel deklariere?Wenn du Sie so aufbauen möchtest, dann darf diese natürlich kein Primärschlüssel sein, dies ist korrekt. Dennoch würde ich eine Spalte hinzufügen (z. B. Obj_ID) das die Datensätze eindeutig identifiziert. Also nen Primary Key.
Du würdest mir einfach noch empfehlen, _zusätzlich_ noch einen Primärschlüssel davor zu setzen?
Hättest du die Tabelle denn anders aufgebaut?
-
Ja, ich würde noch eine Fortlaufende ID hinzufügen, das du jeden datensatz eindeutig identifizieren kannst.
-
Oder du verwendest ID und Language als Primärschlüssel. Die Kombination von beiden sollte ja auch immer eindeutig sein.
-
Eine zusätzliche fortlaufende ID kann nicht schaden. Verwende ich auch immer, da es manchmal Situtation gibt, in denen ein UPDATE oder SELECT unnötig erschwert wird, weil nur ein zusammengesetzer Schlüssel vorhanden ist.
Allerdings würde ich auch die Sprache als ID auslegen. Sprich noch eine Tabelle mit den Sprachen anlegen und diese ID in der Tabelle Sprachen verwenden.