[SQLAlchemy]複合キーの作成
5445 ワード
SQLAlchemy公式サイト-正式な書類
スタックオーバーフロー-sqlalchemy unique across multiple columns
ダウンジャケットホットスポット-multi-column primary key
ユーザーごとにこの本を1回しか評価できません.
「複合キー(Composite Key)」と真剣にグーグルしてみましたが、まだ完全に理解していないようです.
class Rating(db.Model):
__tablename__ = 'rating'
#__table_args__ = db.ForeignKeyConstraint([user_id, book_id], [Users.id, Books.id])
__table_args__ = (db.PrimaryKeyConstraint('user_id', 'book_id', name = 'user_rating_uc'), )
def __init__(self, user_id, book_id, point, description):
self.user_id = user_id
self.book_id = book_id
self.point = point
self.description = description
cur = datetime.datetime.now()
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
book_id = db.Column(db.Integer, db.ForeignKey('books.id'), nullable=False)
point = db.Column(db.Integer, nullable=False)
created_date = db.Column(db.DateTime, nullable=False, default=cur)
description = db.Column(db.String(250), nullable=False)
まず、対応するコードを使用して解決します.PrimaryKey Constraint VS UniqueKey Constraint
複合キー設定方式で両方使っているようですが、違いはよくわかりません.
Reference
この問題について([SQLAlchemy]複合キーの作成), 我々は、より多くの情報をここで見つけました https://velog.io/@martinalee94/SQLAlchemy-복합키-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol