Hirdetés

Új hozzászólás Aktív témák

  • Totu

    csendes tag

    Hali!

    Megint jöttem kicsit agybajt hozni rátok.
    A kérdés az, hogy hogyan lehet/kell többes mezőkkel relációkat létrehozni?

    Megmutatom a példát, ami a dilemmát okozza, és azon magyarázom el, hogy mi vele a gondom.

    PK: primary key (az egyértelműség kedvéért)
    FK: foreign key (egyértelműség kedvéért)

    model(id PK, desc, ...)
    part(id PK, desc, defaultPN FK->pn.id)
    pn(id PK, part FK->part.id)
    modelpart(model FK->model.id, part FK-> part.id)

    ez eddig egyszerű, mint a szög: vannak modellek, alkatrészek, egy alkatrész több modellhez lehet hozzárendelve, az alkatrészeknek vannak PN-jeik, és nekem kell az is, hogy melyik az aktuális PN, de ez nem olyan lényeges. a gond itt kezdődik(a fentiekhez hozzáadva):

    modelevent(id PK, model FK->model.id, time, ...)
    modeleventPN(modelevent FK->modelevent.id, pn FK->pn.id)

    ez a reláció önmagában nem garantálja nekem, hogy nem tudok olyant PN-t beszúrni a modelevent PN-jeihez, ami nem szerepel a modelpartban.

    hol lehet létrehozni a kötést, ami megmondja, hogy akkor szúrhatom be a megfelelő PN-t, ha a modelpartok között van olyan, aminél stimmel a model, és stimmel a PN-hez tartozó part?

    erre muszáj check constraint-et rakni, vagy ügyes relációval lehetséges?

    Remélem érthető voltam, és nem zagyváltam össze itt senkit.

Új hozzászólás Aktív témák