SQL Modulare Relationen

selberbauer

Captain
Registriert
Juni 2009
Beiträge
3.604
Hallo,

Ich entwickle gerade eine Webapplication, dessen Persistenzschicht stark benutzerbetont arbeitet.

Nun möchte ich, dass ein Benutzer Mitglied verschiedener Datentabellen sein kann und ich später die Mitgliedschaften hinzufügen und entfernen kann.


Soweit bin ich bisher gekommen:
users:
user_id | username | salt | password
1 | rolf | .... | ....

users_receivers:
user_id | receiver_id | row_id
1 | 1 | 1

receivers:
receiver_id | table_name | description
1 | users_logging | speichert Logbuch Einträge der Benutzer

users_logging:
log_id | status | date
1 | angemeldet | 12.3.12


Dies ist nur hypotetisch und wird nicht funktionieren, verdeutlicht aber ganz gut, wie ich mir das gedacht habe.



Gibt es eine Möglichkeit diese Modularität mit MySQL umzusetzen und wenn ja wie oder muss man alles "hard coden"?

Gruß
 
Hi,

habe mal eben in der Entwicklung nachgefragt. Das geht wohl nur hardcoded. Jedenfalls brauchen wir das auch und die Jungs von Oracle hätten ganz gerne eine nicht gerade kleine Summe dafür, dass das tut.

I'm sorry mate!

Cheers,

Flo
 
Hallo,
danke für deine Antwort und das du sogar nachgefragt hast!

Wie handelt ihr das Problem denn?

Ich meine angenommen man hat folgende Tabellen:
user_id | log_id
1 | 1
1 | 2

user_id | photo_id
1 | 1
1 | 2



Dann muss zum Hinzufügen ja eigentlich nur ein neue Relation angelgt werden, also:
user_id | neue_tabelle_id

oder macht ihr das anders?
 
Good day!

Info von DEV (ich versuche das jetzt mal so gut es geht ins deutsche zu übersetzen *gg*): Wir handhaben das gar nicht, weil wir es nicht müssen. Wie bereits geschrieben bietet Oracle hier bereits von Haus aus eine Lösung, welche als Add-In zur Verfügung steht und das übernimmt. Kostet halt Lizenzgebühren. Die Funktion lässt sich also 1:1 in die jeweilige Tabelle/Abfrage implementieren. So wie ich das rausgehört habe, ist es wohl alles andere als einfach und lässt sich hardcoded eben viel bequemer realisieren.

Leider bin ich hier aber "nur" der Admin und kein Entwickler, sodass ich deine Fragen nicht immer zeitnah beantworten kann bzw. nachfragen muss. Ehrlich gesagt ist mir schon beim Login-Skripte schreiben sterbenslangweilig, womit ich wohl definitiv kein Bilderbuch-Entwickler bin. ;-) Je gezielter du fragst, desto besser kann ich versuchen deine Frage weiterzureichen.

Cheers,

Flo

Edit: "PeopleSoft Enterprise Marketing Solution" schimpft sich das Ding und in dem Sinne gelöst wird es mit "PL/SQL". ... sagt Paul, der gerade neben mir steht und das deutsche Tastaturlayout behämmert findet. *lach*
 
Zuletzt bearbeitet: (Ergänzung)
Könntest du noch etwas genauer beschreiben, was du mit "Mitglied verschiedener Datentabellen sein" meinst?
 
Das kern problem scheint zu sein das du eine Variable Verbindung zwischen user und tabellen haben willst?

Solche flexiblen Verbindungen lassen mittel eine zwischen Tabelle lösen,
wie du an sich auch schon benutzt hast die halt ein allgemeinen Charakter hat.

users:
user_id | username | salt | password
1 | rolf | .... | ....

user_verbund:
user_verbund_id| user_id| active(optional)|tabelle(optional)
a1|1|true|receiver
a2|1|true|logging

receivers:
user_verbund_id|receiver_id | table_name | description
a1|1 | users_logging | speichert Logbuch Einträge der Benutzer

users_logging:
user_verbund_id|log_id | status | date
a2|1 | angemeldet | 12.3.12


Man könnte jetzt die user_verbund noch um spalte erweitern wo der tabellen namen drin steht und mittels constraints das noch mehr absichern.
Wobei ich nicht genau sagen kann wie weit mysql das dann noch mit macht( in pg ginge es).
 
@flobis
Danke werde da vielleicht nochmal drauf zurück kommen :)

Das kern problem scheint zu sein das du eine Variable Verbindung zwischen user und tabellen haben willst?
Genau ich will nicht immer direkt in die User Komponente eingreifen müssen, wenn ich neue Komponenten hinzufüge

Solche flexiblen Verbindungen lassen mittel eine zwischen Tabelle lösen,
wie du an sich auch schon benutzt hast die halt ein allgemeinen Charakter hat.
Das mit den allgemeinen Charakter ist das Problem.
 
nah wo wäre das problem bei dem von mir vorgestellten konzept
wo halt die user_verbund diese allgemeine tabelle darstellt?
 
Habs jetzt nach ein wenig rumprobieren verstanden.

Danke für eure Hilfe!
 
Zurück
Oben