django vs qlik sense: наименование поля идентификатора id vs table1_id

Qlik Sense рекомендует, чтобы первичный ключ каждой таблицы имел имя, подобное «table1_id», если имя таблицы — Table1. Это позволяет их «автоматической ассоциации» правильно обнаруживать поля с одинаковыми именами и связывать их.

С другой стороны, лучшая практика django — просто использовать имя первичного ключа по умолчанию «id» для каждой таблицы, например. таблица с именем Table1 будет иметь поле с именем «id», то же самое для таблицы с именем Table2 и т. д.

Таким образом, база данных, управляемая django, не даст оптимальных имен полей ID для автоматической ассоциации Qlik Sense.

Какова наилучшая практика среди пользователей Qlik Sense + Django?


person Shadi    schedule 20.03.2018    source источник


Ответы (1)


Вы всегда можете определить свое собственное AutoField с помощью primary_key=True и назвать его как хотите. Более того, вы можете ссылаться на это поле через псевдоним .pk, чтобы оно работало для любой модели.

person Daniel Roseman    schedule 20.03.2018
comment
Это, скорее всего, то, что я собираюсь сделать в конечном итоге, но очень сложно добавлять первичные ключи ко всем моделям, когда это большая база данных. +1 за использование .pk - person Shadi; 20.03.2018
comment
При этом создается миграция, которая удаляет исходное поле идентификатора. - person Shadi; 20.03.2018
comment
Я предполагаю, что этот метод требует, чтобы я заменил автоматическую миграцию моей собственной ручной миграцией, которая переименовывает id в table1_id - person Shadi; 20.03.2018
comment
Фактически, следующее поле будет генерировать автоматическую миграцию, которая просто переименует поле: table1_id = models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID") - person Shadi; 20.03.2018
comment
Это не работает для моделей с верблюжьим корпусом. Сообщено здесь - person Shadi; 03.05.2018