Bilder Upload und Table Problem
Kay2
- php
- sql
- webserver
1 Matthias Apsel0 Kay2
0 Christian Kruse0 Kay2
0 Matthias Apsel0 Kay2
Moin,
ich bräuchte eben eure Hilfe bei 2 Problemen:
CREATE TABLE imgs_usr12322 (
imgid varchar(30),
imgdate varchar(30),
imgtype varchar(30),
);
dabei erhalte ich folgenden Fehler:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 4
Und 2. Wie kann ich es anstellen, dass das Script die Datei automatisch umbenennt und den Dateitypen danach in die ^oben^ erstellte Tabelle einträgt?
Die Website wurde in PHP geschrieben(falls relevant).
Wie löse ich die beiden Dinge am besten, bzw. was mach ich bei Nr.1 falsch?
Hoffe ihr könnt mir helfen! Danke im Voraus
MfG Kay
Hallo Kay2,
- Soll für jeden User bei der Registrierung eine neue Tabelle in der DB erstellt werden die die ID des Users als Suffix hat (zb. table_123321). ich hab das schon mit folgendem Code probiert:
Das halte ich für eine ganz schlechte Idee. Es sollte eine Tabelle User
geben und jeder User bekommt seinen eigenen Datensatz in dieser Tabelle. Zudem gibt es eine Tabelle Userimages
. Beide Tabellen werden durch eine 1:n-Verknüpfung miteinander verbunden
CREATE TABLE imgs_usr12322 ( imgid varchar(30), imgdate varchar(30), imgtype varchar(30), );
dabei erhalte ich folgenden Fehler:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 4
Das wird wohl das Komma sein, das nichts mehr trennt.
Bis demnächst
Matthias
Hallo Matthias! Danke erstmal für die schnelle Antwort!
Zudem gibt es eine Tabelle Userimages. Beide Tabellen werden durch eine 1:n-Verknüpfung miteinander verbunden
Leider habe ich keine Ahnung was genau eine 1:n-Verknüpfung ist. Wäre toll wenn du mir das eben erklären könntest ;)
Das wird wohl das Komma sein, das nichts mehr trennt
Stimmt! Das war das Problem. Danke!
MfG
Hallo Kay2,
ich bräuchte eben eure Hilfe bei 2 Problemen:
- Soll für jeden User bei der Registrierung eine neue Tabelle in der DB erstellt werden die die ID des Users als Suffix hat (zb. table_123321).
Bitte tu das nicht. Das ist ein Anti-Pattern, dafür sind Datenbanken nicht gedacht.
ich hab das schon mit folgendem Code probiert:
CREATE TABLE imgs_usr12322 ( imgid varchar(30), imgdate varchar(30), imgtype varchar(30), );
Das Komma nach dem imgtype varchar(30)
ist zuviel. Aber verwende doch lieber nur eine Tabelle nach diesem Schema:
CREATE TABLE images (
imgid varchar(30),
imgdate varchar(30),
imgtype varchar(30),
owner_id INT NOT NULL,
FOREIGN KEY (owner_id) REFERENCES users(user_id)
);
Und 2. Wie kann ich es anstellen, dass das Script die Datei automatisch umbenennt und den Dateitypen danach in die ^oben^ erstellte Tabelle einträgt?
Hier verstehe ich die Problemstellung nicht.
LG,
CK
Danke auch an dich, Christian, für die schnelle Antwort!
Bitte tu das nicht. Das ist ein Anti-Pattern, dafür sind Datenbanken nicht gedacht.
Was genau meinst du mit Anti Pattern? Versteh das grad nicht so ganz ;)
CREATE TABLE images ( imgid varchar(30), imgdate varchar(30), imgtype varchar(30), owner_id INT NOT NULL, FOREIGN KEY (owner_id) REFERENCES users(user_id) );
Was genau macht das FOREIGN KEY bzw. REFERENCES ?
MfG Kay
Hallo Kay2,
Danke auch an dich, Michael, für die schnelle Antwort!
Bitte? 😂
Bitte tu das nicht. Das ist ein Anti-Pattern, dafür sind Datenbanken nicht gedacht.
Was genau meinst du mit Anti Pattern? Versteh das grad nicht so ganz ;)
Ein Anti-Pattern ist ein Lösungs-Ansatz, der häufig verwendet wird, den man aber nicht verwenden sollte weil er schlecht ist.
CREATE TABLE images ( imgid varchar(30), imgdate varchar(30), imgtype varchar(30), owner_id INT NOT NULL, FOREIGN KEY (owner_id) REFERENCES users(user_id) );
Was genau macht das FOREIGN KEY bzw. REFERENCES ?
LG,
CK
Hallo Christian Kruse,
Im OP steht was von MariaDB. Aber ich befürchte, es braucht einen DB-Grundlagenkurs.
Bis demnächst
Matthias
Hallo Matthias,
Im OP steht was von MariaDB.
MariaDB ist 100% rückwärtskompatibel. Das ist also in diesem Fall nicht so wichtig.
LG,
CK
Hallo Christian Kruse,
MariaDB ist 100% rückwärtskompatibel. Das ist also in diesem Fall nicht so wichtig.
Und zudem kann ich mir nicht vorstellen, dass sich das Fremdschlüssel-Konzept zwischen den verschiedenen DBMS wesentlich voneinander unterscheidet.
Bis demnächst
Matthias
Hallo Christian^^
Ein Anti-Pattern ist ein Lösungs-Ansatz, der häufig verwendet wird, den man aber nicht verwenden sollte weil er schlecht ist.
Inwiefern denn schlecht?
Danke für die Links! ;)
K2
Hallo Kay2,
Ein Anti-Pattern ist ein Lösungs-Ansatz, der häufig verwendet wird, den man aber nicht verwenden sollte weil er schlecht ist.
Inwiefern denn schlecht?
Das fällt mir dazu ein ohne groß darüber nachzudenken, wobei ich mir sicher bin, dass es noch mehr Probleme gibt, etwa ein etwaiges oberes Limit an Tabellen.
LG,
CK
Hallo,
Bitte tu das nicht. Das ist ein Anti-Pattern, dafür sind Datenbanken nicht gedacht.
Was genau meinst du mit Anti Pattern?
etwas, das man bitte auf keinen Fall tun sollte. So wie Tipp-Ex am Bildschirm.
CREATE TABLE images ( imgid varchar(30), imgdate varchar(30), imgtype varchar(30), owner_id INT NOT NULL, FOREIGN KEY (owner_id) REFERENCES users(user_id) );
Was genau macht das FOREIGN KEY bzw. REFERENCES ?
Nach meinem Verständnis gibt man damit an, dass für images.owner_id und users.user_id ein gemeinsamer Index erzeugt wird.
So long,
Martin
Hallo Martin,
Was genau macht das FOREIGN KEY bzw. REFERENCES ?
Nach meinem Verständnis gibt man damit an, dass für images.owner_id und users.user_id ein gemeinsamer Index erzeugt wird.
Foreign Keys haben mit Indizes erstmal nichts zu tun. Aber siehe auch.
LG,
CK
Hallo,
Was genau macht das FOREIGN KEY bzw. REFERENCES ?
Nach meinem Verständnis gibt man damit an, dass für images.owner_id und users.user_id ein gemeinsamer Index erzeugt wird.
Foreign Keys haben mit Indizes erstmal nichts zu tun.
okay. Ich wusste es nicht und habe nachgeschlagen, und so beschreibt es ein kleines MySQL-Taschenbuch in ganz knappen Sätzen, das "zufällig" neben mir im Regal steht.
Aber siehe auch.
So long,
Martin
Hallo Kay2,
- Soll für jeden User bei der Registrierung
CREATE TABLE imgs_usr12322 ( imgid varchar(30), imgdate varchar(30), imgtype varchar(30), );
Was sind denn das überhaupt für Bilder? Von der Antwort hängt auch die Struktur der Datenbank ab. Kann jeder Nutzer nur genau ein Bild haben? Warum sind Datum und Typ wichtig?
Bis demnächst
Matthias
@Matthias:
Was sind denn das überhaupt für Bilder? Von der Antwort hängt auch die Struktur der Datenbank ab. Kann jeder Nutzer nur genau ein Bild haben? Warum sind Datum und Typ wichtig?
Profilbild, Fotos die in nen Post eingebunden werden usw.
Mfg K2