![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Takie koncepcyjne pytanie.
Refaktoryzuję bazę danych i dorzucam kluczę obce dla lepszego porządku. ON UPDATE/DELETE CASCADE idealnie nadaje się do relacji gdy jeden zbiór jest podzbiorem innego i podzbiór sam w sobie nie może istnieć. Zastanawiam się jednak jaki typ nadać dla relacji: Wiersz w bazie danych, jakiś rekord, który ma "creator_id" czyli id użytkownika, którzy utworzył ten rekord. Nie jest to rekord własności obiektu, a tylko taka dodatkowa informacja jak data utworzenia. Zastanawiam się jakiej tu relacji użyć (jeśli w ogóle jest sens) bo na pewno usuwając użytkownika nie chce usunąć tego rekordu (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Oboje macie racje.
1) Robię soft delete choć wiadomo, że po czasie warto by jednak usuwać takie konta i problem wróci. Soft delete też czasami rodzi problemy gdy gdzieś zapomni się odfiltrować usunięte rekordy stąd trzeba z nim uważać. Pomijam już zupełnie kwestie prawne. 2) Słusznie nie da się zrobić tylko samego UPDATE bo to burzy założenia kluczy obcych. Albo jest twarda relacja, albo nullujemy. W sumie zostawię decyzję na potem. Ostatecznie albo zostawię bez klucza albo UPDATE -> NULL. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 03:10 |