Wenn ich eine Tabelle ohne Primärschlüssel definieren:Warum benötigt Flask-SQLAlchemy einen Primärschlüssel?
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)
ich einen Fehler:
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.
Die einzige Lösung ist manuell __tablename__
, zu definieren, aber warum ist dies erforderlich?
Ich brauche keinen Primärschlüssel, da die einzigen Anforderungen sind, alle Spieler mit einem Schlüssel-Wert-Paar von X zu bekommen, oder alle Schlüssel-Wert-Paare für einen bestimmten Spieler zu bekommen, und ein Spieler kann nicht haben doppelte Schlüssel
Sie einen guten Primärschlüssel Kandidaten haben: '(Spieler, Schlüssel)'. –
Ooooh ... Du machst mich wieder blöd: D @ IljaEverilä –