Zacząłem pracować w nowej organizacji, a jednym z wzorców, które widziałem w bazie danych, są powielanie pól, aby ułatwić pisanie zapytań analitykom biznesowym. Używamy Django i jego ORM.
W jednym przypadku przechowujemy obiekt MedicalRecordNumber z unikalnym ciągiem identyfikującym pacjenta w określonym kontekście. Mamy obiekty rejestracyjne, które śledzą pacjentów i mają powiązane numery MedicalRecordNumbers , ale zamiast używać relacji klucza obcego, duplikują ciąg, aby uniknąć pisania sprzężenia ( nie ze względu na wydajność). Ten wzorzec jest powszechny w całej bazie danych.
Dla mnie znaczenie czystego modelu danych jest po prostu tak, że mogę o nim dobrze myśleć. Niepotrzebna złożoność to strata mojego ograniczonego czasu przetwarzania poznawczego. To systematyczny problem. Niekomfortowe pisanie łączy jest problemem, który można naprawić. Niekoniecznie chcę opowiadać się za powrotem i zmianą schematu, ale chciałbym móc przekonująco przedstawić problemy związane z tego rodzaju powielaniem.