Announcement

Collapse
No announcement yet.

Tabellenübergreifende zusätzliche unique id möglich?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabellenübergreifende zusätzliche unique id möglich?

    Liebe Entwicklerfreunde,

    ich befasse mich gerade mit folgendem Setup (Bsp.)
    mehrere Tabellen mit verschiedenen Entitäten: tbl_person, tbl_ort, tbl_event
    eine Tabelle mit Fotos: tbl_pic

    Ein Eintrag aus der tbl_pic soll nun beliebig vielen Einträgen aus tbl_person und/oder tbl_ort und/oder tbl_event zugeordnet sein können. Realisieren liesse sich das über 3 m:n verknüpfungen von tbl_pic zur jeweiligen korrenspondierenden Tabelle. Mein Wunschdenken geht allerdings dahin in die drei Entitätstabellen eine jeweilige PIC_ID einzuführen, die einen Unique Wert über alle 3 Tabellen hat. D.h. ein INT Wert, der auf 3 Tabellen nur einmal vorkommt. und als Sahnehäubchen vielleicht auch noch auto_increment ist. Damit reicht mir dann eine m:n Verknüpfungstabelle um Bilder mit Entitäten zu verbinden (zwar nur von der Entität ausgehend, da ich keine Rückschlüsse von der PIC_ID auf die Art Entität ziehen kann, aber das würde mir reichen).

    Ansätze sind dahin gegangen, das über BEFORE INSERT TRIGGER zu lösen und aus aus einem JOINED VIEW die größte PIC_ID der 3 Tabellen auszulesen und dann die nächst höhere zu vergeben.
    Oder verschiedene Nummernbereiche für Entitäten zu vergeben (tbl_person hat PIC_ID Bereich 1000 - 1999, tbl_ort 2000 - 2999, tbl_event 3000 - 3999). Warum dieser Ansatz allerdings furchtbar ist brauche ich denke ich nicht zu erwähnen.

    Frage: geht das auch einfacher, besser, schneller, autmatisiert? Bzw. gibts Erfahrungen und/oder Hinweise, wie ich das besser lösen kann?

    Danke für Eure Hilfe!!

    LG idsc

  • #2
    Mach nicht die Verknüpfungen
    Code:
    ort-id => pic-ort-id
    person-id => pic-person-id
    event-id => pic-event-id
    sondern verknüpfe mit der eindeutigen pic-id
    Code:
    ort-pic-id => pic-id
    person-pic-id => pic-id
    event-pic-id => pic-id
    Die pic-id kannst du dann auch autoincrement belassen.
    Bei SQL-Code bitte beachten: Formatierung von SQL in Beiträgen

    Comment


    • #3
      Danke für die Antwort!
      diese Möglichkeit hab ich schon in betracht gezogen, problem dabei is, dass ich hier ja nur ein schemenhaftes DB Modell zur Erklärung angeführt habe... In Wahrheit gibt es etwa 40 - 50 Entitäten und dann wirds unpraktisch/unübersichtlich...

      Comment

      Working...
      X