有人能帮我解决下面的问题吗
我希望Person表中的每个人都可以拥有与其他人同名的宠物,但一个人不能拥有两个同名的宠物,但我不确定如何建模/编码
个人:兹比塞克
人物:乔恩
代码:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///sql1.db'
db = SQLAlchemy(app)
class Person(db.Model):
__tablename__ = 'person'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20), unique=True)
pets = db.relationship('Pet', backref='owner')
class Pet(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20), unique=True)
age = db.Column(db.Integer)
owner_id = db.Column(db.Integer, db.ForeignKey('person.id'))
如果可以有多个宠物使用
unique=True
这个名字,即使它们属于不同的人,也不能在宠物上使用unique=True
标签。删除它是没有问题的,我不明白为什么你会要求名字是唯一的,因为你显然希望多个宠物有相同的名字。因为宠物的ID是唯一的,所以名称不必是唯一的如果您现在只希望每个宠物名中的一个可供一个人使用,则需要将其设置为宠物的表参数。这样,同一主人的两只宠物就不能有相同的名字
更新宠物类别:
相关问题 更多 >
编程相关推荐