Zum Inhalt springen

MySQL-Befehle


Will_Malecken

Empfohlene Beiträge

Achso ich dachte eigentlich, dass nur allgemein drin steht, wer welche Rechte auf die Dateien hat. Also nur irgendeine Datei oder alle Dateien. Aber warum kann er das keinem Nutzer zuordnen? Da steht doch die Nutzer ID bei. Oder muss ich dann eine Tabelle machen, in der die Datei ID und die Nutzer ID steht damit er das zuordnet?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Antworten 53
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Top-Benutzer in diesem Thema

Also die N_ID, die Du dort für Zugriff definierst, ist kein Fremdschlüssel auf die User-Tabelle. Es wurden Dir jetzt schon diverse Male die nötigen Stichworte genannt. Zeig doch ein wenig Eigeninitiative und informier Dich mal zu den Themen referentielle Integrität, Primär- und Fremdschlüssel und den evtl. anderen genannten Themen.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tut mir leid aber irgendwie versteh ich immernoch nicht wie das mit den Fremdschlüsseln geht... Ich habe schon recherchiert aber ich versteh das nicht ganz. Also man muss einen Fremdschlüssel für einen Primärschlüssel erstellen damit dieser auf einen anderen Primärschlüssel zugreifen kann. Stimmt das?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na das ist doch schon was! Allerdings vergibst du auch in der Tabelle Zugriff, die Werte für N_ID automatisch. Macht das Sinn? Was tut den deine Foreign Key Constraint? Sie stellt doch sicher, dass der Fremdschlüssel auch als Primärschlüssel bereits existiert. Wie kommt ein solcher Fremdschlüssel also zustande? Da er auch als Primärschlüssel existieren muss, kann er erst danach manuell angelegt werden, oder?

Kleiner Tipp, geh' hier doch mal etwas strukturierter vor, und dokumentiere das auch für uns:

  • Erzeuge z.B. ein kleines Datenbeispiel,
  • welche Attribute sind Primärschlüssel und welche sind Fremdschlüssel oder
  • schreib' auf was du darunter bis jetzt verstehst.

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Primär- und Fremdschlüssel sind doch im Prinzip das gleiche. Das sind doch meistens IDs oder? Und wenn man dann z.B in einer zweiten Tabelle auch eine ID hat, die praktisch der ersten Tabelle sagen soll, dass es sich um die und die Datei handelt, dann muss man doch einfach noch eine Fremdschlüsselsyntax zur Primärschlüsselsyntax dazu packen, damit der weiß, dass der Primärschlüssel gleichzeitig auch der Fremdschlüssel sein soll oder so?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na dann mach jetzt erstmal ein Beispiel (SQL) mit zwei Tabellen Dokument und Link. Beide haben einen Namen, und bei Link wird zusätzlich angeben, auf welches Dokument er 'zeigt'. Für beide sollst du einen künstlichen Primärschlüssel verwenden. Und am Ende bitte noch drei Inserts: Ein Dokument 'Foo' und 'Bar' und ein Link 'Foolink', der auf 'Foo' zeigt. Los geht's und vergiss die Kommentare nicht ;).

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe jetzt schon Probleme xD Ich versteh bloß grad nicht warum.

CREATE DATABASE Beispiel;

USE Beispiel;

CREATE Table Dokument(Dokumentname INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Dokumentname varchar(25) Not Null,

D_ID varchar(25) Not Null);

CREATE Table Link (Linkname INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Linkname varchar(25) Not Null,

L_ID varchar(25) NOT NULL);

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier:

DROP DATABASE Beispiel;

CREATE DATABASE Beispiel;

USE Beispiel;

CREATE TABLE Dokument(D_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Nickname VARCHAR(25) NOT NULL);

CREATE TABLE Link (L_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Nickname VARCHAR(25) NOT NULL);

INSERT INTO Dokument (Nickname) VALUES ("Foo"), ("Bar");

INSERT INTO Link (Nickname) VALUES ("Foolink");

Willst du überhaupt IDs haben? :D oder andere Frage: Geht das überhaupt ohne ID?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sehr Gut! Einzig der Attributname 'Nickname' stört mich ein wenig, aber mit Ausnahme, der letzten Forderung hast du allet richtig gemacht :).

Zu der Frage ob ich IDs möchte: Jep ich wollte welche (künstlicher Primärschlüssel). Ob man dis auch anders machen könnte? Ja, angenommen der Name eines Dokumentes muss eindeutig sein, so könntest du stattdessen auch 'Name' verwenden (natürlicher Primärschlüssel) und 'D_ID' weglassen, da es ja dann nicht mehr gebraucht werden würde.

Was hab' ich nun mit 'zeigt auf' gemeint? Wat hat denn ein Html-Link für ein Attribut? Richtig 'href'. Und wat steht drin? Na die Adresse der Webseite auf die 'verlinkt' wird. Was wäre also die Dokumentadresse in deinem Fall?

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm okay... Wie bekomm ich folgendes hin: "Foolink"->"Foo"? Anders gesagt wie bekomme ich es hin, dass wenn ich "Foolink" kenne, dass ich auch "Foo" kenne?

Nach deinen Inserts sollte ja ungefähr Folgendes in der DB stehen:

Dokument:

(1,'Foo')

(2,'Bar')

Link:

(1,'Foolink')

Du musst jetzt nur noch Link ändern, so das folgendes in der DB wäre:

(1,'Foolink',1)

Bearbeitet von karl-heinz
Link zu diesem Kommentar
Auf anderen Seiten teilen

CREATE DATABASE Beispiel;

USE Beispiel;

CREATE TABLE Dokument(D_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Nickname VARCHAR(25) NOT NULL);

CREATE TABLE Link (L_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Nickname VARCHAR(25) NOT NULL,

D_ID VARCHAR(25) NOT NULL);

INSERT INTO Dokument (Nickname) VALUES ("Foo"), ("Bar");

INSERT INTO Link (Nickname, D_ID) VALUES ("Foolink", "1");

so is es nicht gemeint oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja! Und zwar in der Link-Tabelle (z.B. Link.D_ID oder Link.Dokument als int). D.h. also, du 'nimmst' dir den Primärschlüssel der betreffenden Tabelle (hier Dokument.D_ID) und 'verwendest' ihn in der anderen Tabelle (Link) als Fremdschlüssel, indem du ihn dort als Spalte anlegst (beide Datentypen müssen übereinstimmen!). Und dann kannst du noch eine CONSTRAINT für Link definieren, die sicherstellt, dass wenn du einen Wert in Link.D_ID reinschreibst, dieser auch in Dokument.D_ID existiert. Aber du kannst kein AUTO_INCREMENT für den Fremdschlüssel verwenden! Und wenn du jut bist, sachste mir noch kurz warum ;)...

Link zu diesem Kommentar
Auf anderen Seiten teilen

CREATE DATABASE Beispiel; 

USE Beispiel;


CREATE TABLE Dokument(D_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 

Nickname VARCHAR(25) NOT NULL);


CREATE TABLE Link (L_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Nickname VARCHAR(25) NOT NULL,

D_ID VARCHAR(25) NOT NULL);


INSERT INTO Dokument (Nickname) VALUES ("Foo"), ("Bar");

INSERT INTO Link (Nickname, D_ID) VALUES ("Foolink", "1");

so is es nicht gemeint oder?

Doch fast, aber du hast nicht denselben Datentypen für den Fremdschlüssel verwendet, und dat ist weshalb problematisch?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es muss ja gleich sein, weil er das sonst nicht zuordnen könnte oder? :D

Das mit dem Auto_Increment weiß ich nicht. Ich kenn eigentlich die ganze Bezeichnung gar nicht wenn ich ehrlich bin, ich weiß nur dass das dahin muss^^.

Ähm okay dafür brauch ich aber noch bisschen Zeit ;) Ich schreib gleich nochmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

DROP DATABASE Beispiel;

CREATE DATABASE Beispiel;

USE Beispiel;

CREATE TABLE Dokument(D_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Nickname VARCHAR(25) NOT NULL);

CREATE TABLE Link (L_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

Nickname VARCHAR(25) NOT NULL,

D_ID VARCHAR(25) NOT NULL);

INSERT INTO Dokument (Nickname) VALUES ("Foo"), ("Bar");

INSERT INTO Link (Nickname, Link.D_ID) VALUES ("Foolink", "1");

Also ganz leicht einfach so? Fehler sind schonmal nicht drin ;D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...