Если я определить таблицу без первичного ключа:Зачем нужна флэшка-SQLAlchemy для первичного ключа?
class CustomAttribute(db.Model):
player = db.Column(db.Integer, db.ForeignKey('player.id'))
key = db.Column(db.Text, nullable=False)
value = db.Column(db.Text, nullable=False)
Я получаю сообщение об ошибке:
sqlalchemy.exc.InvalidRequestError: Class <class 'rpgquest.models.CustomAttribute'> does not have a __table__ or __tablename__ specified and does not inherit from an existing table-mapped class.
Единственным выходом является вручную определить __tablename__
, но почему это нужно?
Мне не нужен первичный ключ, так как только запросы состоят в том, чтобы получить всех игроков с помощью пары значений ключа X или получить все пары ключ-значение для определенного игрока, а игрок не может иметь дублировать ключи.
У вас есть хороший кандидат первичного ключа: '(игрок, ключ)'. –
Ooooh ... Вы снова заставляете меня чувствовать себя глупо: D @ IljaEverilä –