Beziehung mysql 1:n

Fruitgum

Erfahrenes Mitglied
Hallo Leute,

mmm, wie fange ich an an?

Also, ich möchte mehrere Sprachen in in eine Daten bank anlegen, und diese Tabelle soll auch erweiterbar bleiben. Zu den Sprachen soll ein Video hinzugefügt werden was mittels eines Formular hochgeladen wird. Im Formular möchte ich eine Sprache wählen und somit dem Video der gewählten Sprach zuordnen.

Ich weiß das man das mit einer Datenbank-Beziehung 1:n lösen kann.

Also ich habe eine Datenbank mit 2 Tabellen angelegt, nur weiß ich nicht ob ich die Beziehung geschaft habe.

Tabelle Sprachen:

create table sprachen(
sprachen_id integer not null auto_increment,
sprachen char(30),
video_id integer(30),
primary key(sprachen_id));


Tabelle Videos

create table video(
video_id integer not null auto_increment,
video_name char(30),
video_titel char(30),
video_xml1 char(30),
video_xml2 char(30),
primary key(video_id));

Sprachen sollen einzeln angelegt werden und dann auswalbar werden bei Video Formular.

Wie schreibe ich jetzt Daten in Tabelle SPrachen, quasi wie lege ich eine Sprache an und wie füge ich dann das Video hinzu und verknüpfe das mit der Sprache?

Ich will wissen wie das INSERT INTO aussieht...


LG
 
Deine Tabellenstruktur solltest du etwas anpassen.

Tabelle Sprachen:
create table sprachen(
sprachen_id integer not null auto_increment,
sprachen char(30),
primary key(sprachen_id));


Tabelle Videos
create table video(
video_id integer not null auto_increment,
video_sprache integer not null,
video_name char(30),
video_titel char(30),
video_xml1 char(30),
video_xml2 char(30),
primary key(video_id));


Nun kannst du bei den jeweiligen Videos einfach die ID der Sprache hinterlegen. :)
 
Huhu,

also das mit deinen Tabellen funktioniert, jedem video wird jetzt eine Sprache zugeordnet.

Tabelle Sprachen:
create table sprachen(
sprachen_id integer not null auto_increment,
sprachen char(30),
primary key(sprachen_id));


Tabelle Videos
create table video(
video_id integer not null auto_increment,
video_sprache integer not null,
video_name char(30),
video_titel char(30),
video_xml1 char(30),
video_xml2 char(30),
primary key(video_id));


nun will ich aber , so suchen:
Wähle Sprache und zeige mir nun alle Videos zur gewälten Sprache?

Ist die Tabelle dafür okay? Ich weiß jetzt nicht wie ich das auslesen könnte...

Grüße
 
Code:
SELECT 
    v.* 
FROM
    video v,
    sprachen s
WHERE
    s.sprachen_id = v.video_sprache AND
    s.sprachen = "Deutsch";

Mein Tipp, such dir ein Tutorial zu SQL.
 
Danke!

Lasst mal immer DIESE Tipps mit den Tutorials. Du musst ja nicht davon ausgehen das jeder der hier Postet nicht vorher schon gesucht hat. Mir sind schon die Entitäten der Datenbank bewusst, habe lediglich nicht gewusst oder verstanden wie ich den Query baue.

Und außerdem ist das doch hier ein Forum und las doch die Leute Fragen, dafür ist es doch da und wenn 20.000 mal die Frage auf neues gestellt wird wird sie auch 20.000 mal auf neue beantwortet werden. :)

LG
 
Nur ruhig Blut. ich hab die ja auch brav eine Lösung dazugepostet.
Doch wenn ich sie dir erklären soll - ich weiss ja nicht, wass du schon weisst - schreibe ich also gleich ein Tutorial und das will ich nicht.

Je genauer die Fragestelleung, umso besser kann man antworten. Wenn du schon diverse Dinge gelesen hast, dann mach ein Versuch in SQL und poste ihn um zu fragen warum es nicht geht.
 
Moin Fruitgum und yaslaw,

nur ein kurzer Einwurf in euren Dialog:
--> Mit einem "primary key(video_id));" der Video-Tabelle kann es aber nicht klappen.
Weder das Konzept noch yaslaws Query.

Entweder ein PK auf Video_id und Sparachkz oder eben eine dritte Relationentabelle VideosInSprachen daneben zusätzlich zu deiner Video-Tabelle mit PK video_id und Dimensionstabelle Sprachen.

Grüße
Biber
 
@Biber2
Warum? er will eine 1:n, nicht n:n
1 Sprache zu mehreren Videos.

Wenn er natürlich pro Video mehrere Sprachen hinterlegen will (weils halt doch DVDs sind *g*), dann hast du natürlich recht. Dann braucht er eine Relationentabelle.
 
uuuups, yaslaw,

sorry, ich komme aus Bremen....
Da habe ich das irgendwie nicht mitbekommen, dass es noch irgendwo Videos mit nur einer Sprache zu kaufen gibt.

Ich dachte irgendwie die ganze Zeit an diese kleinen silbrigen runden Scheiben und nicht an die großen schwarzen rechteckigen Toastschlitz-Reiniger....


...is' mir das jezz' aber peinlich.... ;-)

Grüße
Biber
 

Neue Beiträge

Zurück