-
Brak rzeczywistego ograniczenia może prowadzić do uszkodzonych odwołań, nieprawidłowych rodziców i innego rodzaju niespójności danych. Nie jestem ekspertem od Django, ale zaryzykowałbym przypuszczenie, że w większości przypadków Django nadal będzie dobrze radzić sobie z relacjami, chyba że celowo dodasz nieprawidłowe rekordy.
-
Zwykle, jeśli RDBMS obsługuje ograniczenia kluczy obcych, nie ma absolutnie żadnego powodu, aby ich nie używać, a ignorowanie ich może potencjalnie zostać uznane za wadę projektową.
-
Powinieneś rozważyć dodanie kluczowych ograniczeń. Nie tylko dają Twojemu DBMS dobre pojęcie o tym, jak zoptymalizować zapytania, ale także zapewniają spójność danych. Jestem prawie pewien, że Django ma gdzieś ustawienie, które automatycznie wygeneruje SQL, aby dodać kluczowe ograniczenia po uruchomieniu
manage.py syncdb
Aby uzyskać więcej informacji o tym, dlaczego powinieneś preferować klucze obce, przeczytaj Dokumentacja klucza obcego MySQL
Co najciekawsze: