【发布时间】:2020-03-25 23:54:51
【问题描述】:
我正在尝试在 Flask 中创建棋盘游戏 Mastermind 的虚拟版本。由于我需要存储有关当前游戏状态的信息,因此我使用 SQLAlchemy 和 SQLite 来实现这一目标。
游戏有一个随机生成的代码,用户必须猜测。此代码由可能重复的各种颜色组成。因为一个颜色可以用于多个游戏,所以是多对多的关系。所以我所做的是在 Game 和 Color 之间创建了一个关联表。
game_colors = db.Table("game_colors",
db.Column("id", db.Integer, primary_key=True),
db.Column("game_id", db.Integer, db.ForeignKey("game.id")),
db.Column("color_id", db.Integer, db.ForeignKey("color.id"))
)
我添加了一个 id 字段作为主键,以便游戏中的颜色组合可以包含重复的颜色。现在奇怪的是,当我在向游戏中添加一些重复的颜色后将更改提交到数据库时,它们将不会被保存。似乎根本没有使用 id 字段。
如何使 id 字段成为主键或确保我可以在此关联表中存储重复的颜色?
【问题讨论】:
标签: python sqlite flask sqlalchemy