To pytanie nie dotyczy różnicy między SQL a NoSQL. Szukam jakiegoś uzasadnienia dla czegoś, co w tej chwili naprawdę nie ma dla mnie sensu (może z powodu mojego braku zrozumienia lub uznania).
Nowy projekt rozpoczęliśmy od zera przy użyciu MVC5, kodu Entity Framework 6 i SQL Server 2008. Kiedy architekt przejrzał schemat bazy danych stwierdził, że wszystkie klucze obce i inne tego rodzaju ograniczenia powinny zostać usunięte, ponieważ jest to „logika biznesowa” i należy zastosować w warstwie biznesowej kodu aplikacji.
Moim zdaniem klucze obce stanowią część integralności danych / referencji i nie naśladują logiki biznesowej. Logikę biznesową postrzegam bardziej jako proces i sprawdzanie poprawności, które kontrolują, jakie / kiedy / jak / dlaczego stosowane są referencje. Rozumiem, że wyjątkowe ograniczenia są prawdopodobnie procesami biznesowymi, ale dla mnie to tylko uzupełnia logikę i stanowi część integralności.
Drugim argumentem jest przyjęcie podejścia NoSQL do danych. Znalazłem to naprawdę niezwykłe i niekonwencjonalne: biorąc pod uwagę użycie SQL-Server 2008, potrzebę raportowania, danych nieskalowanych do terabajtów oraz brak uwzględnienia technologii takich jak Mongo, Raven itp.
Czy ktoś wcześniej spotkał się z takim scenariuszem? Dlaczego ktoś miałby stosować podejście NoSQL w SQL Server zaprojektowanym dla danych referencyjnych i nie chcieć kluczy obcych?