-
No tener una restricción real puede generar referencias rotas, padres inválidos y otros tipos de inconsistencias de datos. No soy un experto en Django, pero me aventuraría a suponer que, en la mayoría de los casos, Django seguirá manejando bien las relaciones a menos que agregue a propósito algunos registros no válidos.
-
Normalmente, si su RDBMS admite restricciones de clave externa, no hay absolutamente ninguna razón para no usarlas, y podría considerarse una falla de diseño ignorarlas.
-
Debería considerar agregar las restricciones clave. No solo le dan a su DBMS una buena idea de cómo optimizar las consultas, sino que también aseguran la consistencia en sus datos. Estoy bastante seguro de que Django tiene una configuración en algún lugar que generará automáticamente el SQL para agregar las restricciones clave cuando ejecuta
manage.py syncdb
Para obtener más información sobre por qué debería preferir claves foráneas, debe leer Documentación de clave externa de MySQL
Lo más interesante: