MySQL problem Gruppe User ToDO

eco4ever

Mitglied
Hallo,

ich möchte gerne eine Datenbank aufbauen die folgendes kann.

User Tabelle mit Name und Passwort
Gruppe Tabelle mit Name und Passwort
ToDo Tabelle mit den Einträgen

nun das Problem. Die Webseite soll die ToDo Liste anzeigen für den User der bestimmten Gruppe. Quasi das Unterschiedliche ToDo listen anhand der Gruppen und deren Usern erstellt werden.

Im Anhang meine Datenbank .
Bitte um Hilfe ob das so Funktioniert bzw ein paar nützliche Links wo ich mich belesen kann.

liebe Grüße Tobias
 

Anhänge

  • mydb-4.sql.zip
    1,7 KB · Aufrufe: 5
Irgendwie hat glaub dein SQL nicht mit dem Thread zu tun. Dort drin sind die Tabellen:
artivle
buylist (leer)
gruppe
user

Aber keine todo.

Und wie soll der Zusammenhang zwieschen den Tabellen aussehen

Mach mir bitte ein Datenbeispiel mit Tabellen. So in der Art:
Das hab ich:
Code:
Tabelle mitarbeiter
id | firma_id | name
--------------------
1 | 1 | MA1
2 | 1 | MA2
3 | 2 | MA3

Tabelle Firma
id | name
---------------------
1 | firma1
2 | firma2

Nun will ich wissen, welche Firma wieviele Mitarbeiter hat. Das soll dann so aussehen
Code:
firma_id | firma_name | anzahl_mitarbeiter
------------------------------------------
1 | firma1 | 2
2 | firma3 | 1
 
Danke für die schnelle Antwort Yaslaw,

so soll das aussehen quasi

Code:
Tabelle User
id | Gruppen_id | name | password
--------------------
1 | 1 | bla | xyz
2 | 1 | blabla | xyz
3 | 2 | blablabla | xyz

Tabelle Gruppen
id | name
---------------------
1 | Gruppe1
2 | Gruppe2

Tabelle Artikel(ToDo)

id | name | Gruppen_id
---------------------
1 | Klopapier kaufen | 1
2 | Wäsche waschen | 1
3 | Blumen gießen |  2
4 | Nase popeln | 2

Es soll quasi die Artikel oder Todo's der jeweiligen Gruppen per MySQL auf meiner Webseite angezeigt werden. Ich weiß aber nicht genau wie die Beziehungen(foreign Keys) zwischen den Tabellen sein müssen damit das auch klappt. Der Nutzer soll sich einloggen können und die richtige Liste (seine Gruppe) angezeigt bekommen

danke


edit: brauche ich evtl anstatt der Tabelle Artikel zwei neue Tabellen Einträge(die Artikel mit User oder Gruppen ID) und Liste( die sich alle Daten holt.)
 
Dann musst du die 3 Tabellen miteinander joinen und nach der user id filtern.

SQL:
SELECT t_article.name, t_group.name, t_user.name FROM t_article
INNER JOIN t_group
ON t_article.fk_group = t_group.pk_group
INNER JOIN t_user
ON t_user.fk_group = t_group.pk_group
WHERE t_user.pk_user = <"id des angemeldeten Nutzers">;

Im Anhang findest du das ER-Model dazu.

Viele Grüße
Youza
 

Anhänge

  • Modell.png
    Modell.png
    12,5 KB · Aufrufe: 5
Ich denke dass zwei Tabellen reichen. Der User ist ja schon eingeloggt, eg. ist dessen Id schon bekannt. Und da in der User Tabelle auch gleich dessen Gruppen ID steht und er nur die ToDo dieser Gruppe wissen will (nicht dessen Name), reichen zwei.

SQL:
SELECT a.name
FROM User u
INNER JOIN Artikel a
ON a.Gruppen_id = u.Gruppen_id
WHERE u.id = <die Id deines Users die du ja schon kennst>
ORDER BY a.id; --falls du die ToDo's noch sortiert haben willst

Alternative schreibweise ohne join
SQL:
SELECT a.name
FROM Artikel a
WHERE a.Gruppen_id =
(SELECT Gruppen_id FROM User WHERE id = <die Id deines Users die du ja schon kennst>)
ORDER BY a.id; --falls du die ToDo's noch sortiert haben willst
 

Neue Beiträge

Zurück