notnotpeter: в настоящее время вы можете «подделать»
это, объявив один из ключей быть
Первичный в Джанго и добавление уникального
ограничение к модели. (нужно больше
Информация о ... Примеры?)
mjm: это работает только когда есть
не составной уникальный ключ для использования, если я
понять, что предлагается здесь.
Таким образом, это может быть работоспособным как способ
сжать дизайн, который, естественно, имеет
CKs в Django, но это бесполезно
для работы с существующей схемой
который имеет только CK.
djansoft: это можно сделать с помощью
Уникально вместе.
Тобу: Вы не можете использовать только одну клавишу.
используйте случай для иллюстрации:
NamespacedTag? модель с CK из
пространство имен и имя. Главная
ключ не может быть просто пространством имен или
только имя, так как это будет
неоднозначный. Единственное решение (и я
не нравится, так как это плохое моделирование
и заставляет доступ к базе данных быть
сериализован на счетчике), это использовать
AutoField?.
toszter: Называй меня психом, но почему бы и нет?
объявить любое количество столбцов как
первичный ключ в вашей модели, который
Затем Джанго использует для создания «скрытого»
столбец pk_composite, это просто хеш
из трех значений ПК в строке?
Когда вы делаете поиск на ПК, вы
примите ВСЮ комбинацию
значения является первичным ключом, ничего
более менее. Итак, когда вы смотрите вверх
в соответствии со значениями, необходимыми для
создать полный pk_composite, хэш
всегда вычисляет и если хеш
алгоритм общедоступен, может быть отключен
URL, строка запроса в дБ
поиски, и где угодно.
Кажется довольно простым, на мой взгляд, но
опять же я не буду в великом
подробно здесь.
При этом я бы создал ID на столе и сделал бы его первичным ключом. Затем добавьте уникальное ограничение на user_id + timestamp.