mySQL/PHP: Tabelle für An-/Ausschalten
berdn
- datenbank
Hallo Forum
ich habe zwei Tabellen
User und Projekte
|user_id|user_name|
-------------------
| 1 | berdn |
|pro_id|pro_name |
------------------
| 1 |Projekt 1 |
| 2 |Projekt 1 |
Der User kann wählen welche Projekte er sehen möchte oder welche nicht.
Das kann sich täglich ändern.
Nun bin ich am überlegen wie ich die dritte Tabelle aufbauen soll.
1. Möglichkeit
Ich fülle die Tabelle für jeden User mit allen Projekten und setzte zum sehen eine 1 oder 0. (n user) x (n projekte) = m entrys
|id|user_id | pro_id | sichtbar|
-----------------------------
|1 | 1 | 1 | 1
|2 | 1 | 2 | 0
__________________________________________________________
2. Möglichkeit
Ich speichere nur die sichtbaren in der Tabelle, sollen Sie nicht mehr sichtbar sein, lösche ich Sie wieder. Sollen Sie wieder sichtbar sein, füge ich Sie wieder hinzu ...
Das erscheint mit nicht sinnvoll
|id|user_id | pro_id |
-----------------------
|1 | 1 | 1 |
|2 | 1 | 2 |
__________________________________________________________
3. Möglichkeit
Ich speichere die sichtbaren Projekte als Array ab, so hat jeder User nur einen Eintrag
|id|user_id | pro_id |
-----------------------
|1 | 1 | 1,2,5,6|
|2 | 2 | 2 |
Im Moment bin ich für 1. und 3. tendiere eher zu 3.
Kann mir jemand bei der Entscheidung helfen?
Im Moment gehe ich von ca. 50 Usern bei einer 10000 Projekten aus.
Wobei nur der User nur aus ca. 20 aktuellen Projekten immer wählen kann.
Hoffe ich habe mich verständlich ausgedrückt.
Liebe Grüße
Bernd
Mahlzeit,
__________________________________________________________
3. Möglichkeit
Ich speichere die sichtbaren Projekte als Array ab, so hat jeder User nur einen Eintrag|id|user_id | pro_id |
|1 | 1 | 1,2,5,6|
|2 | 2 | 2 |Im Moment bin ich für 1. und 3. tendiere eher zu 3.
Mach ruhig ... aber wehe, Du fragst dann hier, wie Du herausbekommen kannst, wer alles Projekt 4711 ausgewählt hat ... weil Du ja irgendwie überhaupt keine vernünftige Abfrage über ein VARCHAR bzw. SET hinbekommst.
Wenn Du keine Historie darüber brauchst, wer wann welches Projekt aktiv hatte und/oder nicht, dann würde ich Dir Deine Variante 2 empfehlen. Variante 1 ist Blödsinn (wenn jemand ein Projekt nicht aktiv hat, wieso braucht's dann einen Eintrag, der auf "inaktiv" steht?) und über Variante 3 reden wir hier bitte NIE WIEDER, OK?
MfG,
EKKi
Hallo EKKi
vielen Dank. Die Abfrage Logik bleibt damit dann in der DB.
Ich dachte nur eine Tabelle würde es nicht mögen wenn ständig Einträge erstellt und gelöscht werden.
Also Nummer 2.
Vielen Dank Bernd
Mahlzeit,
vielen Dank. Die Abfrage Logik bleibt damit dann in der DB.
Wo sie auch hingehört. :-)
Ich dachte nur eine Tabelle würde es nicht mögen wenn ständig Einträge erstellt und gelöscht werden.
Ähm, genau DAFÜR sind Datenbanksysteme doch da?
MfG,
EKKi