Mam jeden model z 3 adresami: odbiór, odrzucenie i fakturowanie. Uważam, że adres rozliczeniowy będzie zazwyczaj adresem odbioru lub odrzucenia, więc z perspektywy interfejsu użytkownika powinienem mieć opcję "tak jak". Ale czy z perspektywy DB powinienem zapisać pole "tak jak", czy też powinienem duplikować dane?Jak przechowywać dane "takie same"?
Odpowiedz
Powinieneś mieć ten sam identyfikator rzędu z tabeli Adres w dwóch różnych kolumnach: PickUp i DropOff. W ten sposób nie duplikujesz adresu, nie używasz adresu wartownika i możesz łatwo zapytać, czy adres PickUp jest taki sam jak DropOff. Jeśli jedna z tych zmian nastąpi w przyszłości, zawsze możesz zmodyfikować wartość Id przechowywaną w odpowiedniej kolumnie na nowy adres.
Można utworzyć tabelę o nazwie "Adres" i wykonać Odbiór, Odrzucenie, Fakturowanie FK do tej tabeli Adres.
To, że adres jest tym samym adresem fizycznym, nie oznacza, że jest to ten sam konceptualny adres. Naprawdę, adres John Doe może być "123 Elm St.", ale pod względem koncepcyjnym jego adres to "Adres pocztowy Johna Doe".
W szczególności, dla adresy powiedziałbym puszkę i powinny być powielane w bazie danych, ponieważ z tej prostej sprawy: rozważyć dwie osoby, które mieszkają pod tym samym adresem. Teraz jeden z nich się rusza. Jeśli adres był przechowywany tylko raz, uaktualnienie adresu "przenosnika" również zaktualizowałoby adres pierwotnego współlokatora.
Ale na ogół rozważ, w jaki sposób dane są powiązane z innymi danymi. Jeśli wiele rzeczy może się z nim wiązać, upewnij się, że zmiana jednego z nich wpłynie na nich wszystkich.
Dobra sprawa, zależy jednak od scenariusza. – mpen
- 1. Dwa formularze mają takie same dane wejściowe
- 2. mySql: liczba wierszy, które mają takie same dane w kolumnie
- 3. Czy drools są takie same jak jrules?
- 4. Jaki jest najlepszy VBA dane type`key` => `value` zapisać dane takie same jak PHP tablicy
- 5. System.Web.Optimization pozostają takie same dla pewnych funkcji
- 6. Sprawdź, czy dwa elementy są takie same
- 7. Czy CDN i Cloud są takie same?
- 8. Znajdź takie same wartości w tablicy przekątnej
- 9. Model Django pobiera takie same wyniki
- 10. wykryć, czy dwie ścieżki są takie same
- 11. Kiedy wskaźniki do tego samego obiektu są takie same?
- 12. jak przechowywać dane w określonym formacie? w WYSWYG?
- 13. komplety emacs lub IntelliSense takie same jak w Visual Studio
- 14. sprawiając, że NeoComplCache pokazuje takie same dopasowania, jak omnicomplete
- 15. ggplot2 Linie Tufte takie same jak znaki osiowe
- 16. Czy idempotentne funkcje są takie same jak czyste funkcje?
- 17. jQuery - jak sprawdzić, czy dwa elementy są takie same?
- 18. MongoDB GridFs z C#, jak przechowywać pliki takie jak obrazy?
- 19. Wybierz dane z dwóch tabel, gdzie ID po obu tabel są takie same
- 20. Gdzie przechowywać dane w iphone?
- 21. Jak przechowywać dane lokalnie openstreetmap na iPhonie
- 22. Jak przechowywać dane JSON na dysku?
- 23. Jak przechowywać dane pozostające po odinstalowaniu?
- 24. Android: jak przechowywać dane w pamięci wewnętrznej?
- 25. Jak przechowywać "zaszyfrowane dane" w MySQL?
- 26. Java: jak efektywnie przechowywać rzadkie dane
- 27. Dlaczego dane wyjściowe różnią się w SQL Server i takie same w Oracle?
- 28. MATLAB: Jak ustawić losowe ziarno w parfor, aby uzyskać takie same wyniki, jak w przypadku serii?
- 29. PHP http_build_query z dwoma kluczami tablicy, które są takie same
- 30. connection.setRequestProperty i excplicitly pisanie do urloutputstream są takie same?
Dobrze ... oczywiste rozwiązanie. Myślę, że myliłem problemy w mojej głowie, kiedy to wymyśliłem (jest też "zapisz jako domyślny"). – mpen