Chtěl bych se zeptat, zda je chyba nedefinovat tyhle vztahy v rámci databáze, ale definovat je až v programu samotném?
Resp. co je lepší způsob a včem?
Smyslem relačních databází (a obecně jakéhokoli softwaru tohoto typu) je, aby ti ušetřily práci – tzn. obvyklé věci, které jsou potřeba ve všech projektech, jsou implementované jen jednou v tom databázovém systému (frameworku, knihovně atd.) a není potřeba je psát znova a znova v každé aplikaci.
Hlídání referenční integrity – vazeb – je přesně ten případ.
Jestli je chyba, že nevyužiješ možností relační databáze a budeš to matlat sám v aplikaci, je otázka – pokud k tomu budeš mít hodně dobrý důvod, tak ne. Ale obecně to je neefektivní styl vývoje – přiděláváš si práci a programuješ něco, co nemusíš, co stačilo deklarovat na úrovni databáze.
Navíc vazby v datovém modelu fungují i jako dokumentace – zdroják tvého programu jen tak někdo luštit nebude, ale na datový model koukne a hned vidí, co je jak propojené.