Oto kolejna, o której ostatnio myślałem. Zawarliśmy we wcześniejszych dyskusjach: "naturalne klucze podstawowe są złe, sztuczne klucze podstawowe są dobre". Praca z Hibernate wcześniej Widziałem, że domyślnie Hibernacja tworzy jedną sekwencję dla wszystkich tabel. Na początku byłem zaskoczony tym, dlaczego miałbyś to zrobić. Ale później dostrzegłem przewagę, która sprawia, że łączenie rodziców i dzieci jest dowodem na to, że są głupi. Ponieważ żadna z tabel nie ma tej samej wartości klucza podstawowego, przypadkowe powiązanie elementu nadrzędnego z tabelą, która nie jest elementem podrzędnym, nie daje wyników.Pytanie o opinie: Jedna sekwencja dla wszystkich tabel
Czy ktoś widzi jakiekolwiek wady tego podejścia? Widzę tylko jeden: nie możesz mieć więcej niż 999999999999999999999999999 rekordów w bazie danych.
"zawarliśmy we wcześniejszych dyskusjach" - wewnętrznej dyskusji, czy coś na SO? – Kev
Kilka dyskusji na temat SO. A "my" oznacza "mnie" ;-) –
Naturalne klucze nie są "złe". Są niezbędne z punktu widzenia integralności danych. Pozwalają użytkownikom identyfikować rzeczy rzeczywiste zidentyfikowane w bazie danych. Zasadniczo sekwencja może być naturalnym kluczem. Właściwie zdecydowanie wolę termin "klucz biznesowy", ale oznacza to samo co "klucz naturalny" - tj. Klucz używany do identyfikacji informacji poza bazą danych (na przykład przez użytkowników biznesowych). – sqlvogel