Medien & Phantastik > Multimedia - Software & Betriebsysteme
Unique Keys in MySQL
der.hobbit:
Hi,
in einem aktuellen Projekt würde ich gerne auf Objekte in beliebigen Tabellen eindeutig zugreifen können. Simples Beispiel: Ich habe eine ID '17' und möchte mit einer einzigen Anfrage das Objekt Nr. '17' bekommen, unabhängig davon ob es in der Benutzer oder Benutzergruppen oder Bananen-Tabelle sitzt. Setzt natürlich voraus, dass die 17 datenbankweit eindeutig ist.
Weiß jemand, wie man das möglichst effizient löst? DB ist MySQL, Sprache ist PHP.
Danke für Tipps!
Haukrinn:
Eine weitere Tabelle einführen, die globale ID's mit allen gespeicherten Tabellenzeilen verknüpft (Also drei Spalten GlobalID, TableID, TableEntryID)? Alles andere wäre wohl geschummelt. Aber wozu brauchst Du das überhaupt? Ich rieche da einen dicken Fehler im Anwendungsdesign...
der.hobbit:
Die Idee hatte ich auch schon, aber sie gefällt mit nicht, weil sich die Anfragen verdoppeln. Zumindest habe ich keine Möglichkeit gefunden, mit einer einzigen SQL-Abfrage das entsprechende Objekt zu einer ID zu holen.
Ich brauche es für Vererbung: Ich habe verschiedene Objekte, sagen wir mal ein Obst-Objekt und ein Bananen-Objekt. Das Banenobjekt erbt von Obst. Nun habe ich eine Seite, die ein Obst-Objekt erwartet, und als Parameter wird die id in der URL übergeben. Es soll aber möglich sein, hier die id sowohl eines Obst-Objekts als auch eines Bananen-Objekts einzugeben.
Wenn die Ids nicht eindeutig sind, dann geht das nicht (jupp, ich könnte auch den Objektnamen mitschicken, aber das fände ich unschöner als global geltende Keys, da diese Kommunikation über den Browser läuft und dementsprechend für den Benutzer sichtbar ist).
Wawoozle:
Hä ?
Du hast ne Seite die nur die ID übermittelt, nehmen wir mal an 17.
Was machst du denn auf der Serverseite damit ?
Hr. Rabe:
--- Zitat von: der.hobbit am 26.06.2008 | 11:32 ---Die Idee hatte ich auch schon, aber sie gefällt mit nicht, weil sich die Anfragen verdoppeln. Zumindest habe ich keine Möglichkeit gefunden, mit einer einzigen SQL-Abfrage das entsprechende Objekt zu einer ID zu holen.
Ich brauche es für Vererbung: Ich habe verschiedene Objekte, sagen wir mal ein Obst-Objekt und ein Bananen-Objekt. Das Banenobjekt erbt von Obst. Nun habe ich eine Seite, die ein Obst-Objekt erwartet, und als Parameter wird die id in der URL übergeben. Es soll aber möglich sein, hier die id sowohl eines Obst-Objekts als auch eines Bananen-Objekts einzugeben.
Wenn die Ids nicht eindeutig sind, dann geht das nicht (jupp, ich könnte auch den Objektnamen mitschicken, aber das fände ich unschöner als global geltende Keys, da diese Kommunikation über den Browser läuft und dementsprechend für den Benutzer sichtbar ist).
--- Ende Zitat ---
Hä?
Warum zum Geier machst du dann nicht eine Obst-Tabelle, die eine Namens-Spalte enthält (dort steht dann z.B. 'Banane').
Wenn du wirklich noch speziefische Eigenschaften persistieren willst, könntest du das ganze mit einer Obst_Details Tabelle ergänzen. (Obst_Id | Detail_Type | Detail_Value).
Nur ein Vorschlag.
Andererseits kann ich mir wirklich keine vernünftige Anwendung vorstellen, in der man auf eine echte Vererbungshirarchie in Persistenz-Objekten angewiesen wäre.
Ich glaube eher, daß du dir dringend nochmal ein bischen Normalisierung anschauen solltest. ;)
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln