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.
cordiali saluti, Totu