Daniel Częstki senior php developer
Temat: Integralność danych na bazie w projektach www.
Weźmy taki przykładowy problem - niech to będzie system np. bilingowy.Mamy klienta, który kupuje jakieś usługi, na które system wystawia faktury.
Usluga łaczy sie "po ID" z klientem, a faktura z uslugą.
Prawidłowo zaprojektowana baza powinna być jednak uniezależniona od takich informacji jak np.
- klient zmienia dane adresowe
- klient rezygnuje z uslugi (usunięcie danych z bazy)
Jezeli bedziemy laczyc te tabele "po ID", to okaze sie ze np. zmiany danych adresowych klienta pociagnie za sobą zmianę wszystkich danych na fakturach - rowniez tych wystawionych w przeszlosci.
Aby temu zapobiec, do tabeli zawierajacej faktury, w momencie jej tworzenia kopiujemy bieżące dane klienta. W tym momencie zmiana danych klienta nie pociągnie za sobą zmiany danych w starych fakturach.
Jestem ciekawy jakie są wasze doświadczenia w tym aspekcie projektowania aplikacji ? Chodzi mi o zachowanie integralnosci danych i budowania odpowiednich powiązań pomiedzy tabelami ?
Z jakimi problemami się spotkaliście i jakie były rozwiazania ?
Jaką polecacie literaturę zwiazaną z poruszonym przeze mnie zagadnieniem ?