Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 国家对城市+;国家对资本=一对多+;一对一?_Python_Sqlalchemy - Fatal编程技术网

Python 国家对城市+;国家对资本=一对多+;一对一?

Python 国家对城市+;国家对资本=一对多+;一对一?,python,sqlalchemy,Python,Sqlalchemy,您将如何增强一对多关系,使“多”端的一个成为杰出的一个 通过一个具体的例子,如何在下面的模型中引入资本的概念?这会是一个额外的一对一映射吗?它会干扰现有的一对多吗?仅仅引入db.Boolean就足够了吗?最后一个是习惯用法还是有更合适的解决方案 class City(db.Model): id = db.Column(db.Integer, primary_key=True) ... country_id = db.Column(db.Integer, db.Foreig

您将如何增强一对多关系,使“多”端的一个成为杰出的一个

通过一个具体的例子,如何在下面的模型中引入资本的概念?这会是一个额外的一对一映射吗?它会干扰现有的一对多吗?仅仅引入db.Boolean
就足够了吗?最后一个是习惯用法还是有更合适的解决方案

class City(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    ...
    country_id = db.Column(db.Integer, db.ForeignKey('country.id'))
    country = db.relationship('Country', back_populates='cities')

class Country(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    ...
    cities = db.relationship('City', back_populates='country')

您可以创建一个新的Capital表,其中每个国家包含一行包含国家ID和城市ID,也可以只向包含首都ID的国家/地区表中添加一列。对于每个城市,这两个表中的任何一个都将提供比布尔值
is\u Capital
更高效的查找和更紧凑的存储