Při návrhu databáze pro skladovou aplikaci, použitelnou na vrakovišti, jsem narazil na poměrně nečekaný problém a nemůžu s ním hnout. Jde o to, že mám na skladě součástky, které obsahují další součástky a můžu prodat buď celek, nebo jednotlivé komponenty. Původní návrh byl postaven na hierarchické struktuře. Čili např: id | nazev | je_soucast (cizi klic) ----------------------- 1 | dvere | null 2 | sklo | 1 3 | klika | 1 4 | lanko | 1 Fungovalo to dobře, pokud jsem prodal dveře - pak se dvere odebraly z DB a kaskadove se umazaly i všechny součásti. Horší je, pokud někdo chce třeba jen kliku. V tu chvíli mi ze skladu mizí klika, ale já bych potřeboval, aby zmizely i dveře - už nemám komplet dveře, jen části. Napadlo mě přidat trigger, který by po smazání "potomka" (kliky) smazal i "rodiče" (dveře). Jenže v tu chvíli by to kaskádově smazalo i zbylé 2 komponenty (sklo a lanko), ale to já nechci. U nich bych jen potřeboval odstranit tu závislost na dveřích. Uff. Jde tohle ještě vůbec uhlídat na úrovni databáze? Díky za jakýkoliv názor...
|