ORM模型和数据库表之间的区别

时间:2018-06-21 19:14:29

标签: python sql sqlalchemy

我正在学习数据库(Postgres)和ORM,因此受到限制。

在数据库中,我有类似的东西

CREATE TABLE public.city (
    city_id    serial PRIMARY KEY,
    city_name  varchar(50) UNIQUE NOT NULL,
    region_id  integer NOT NULL REFERENCES public.region ON DELETE CASCADE
);

而且,在我的Flask应用程序(python,Flask微框架和Flask-SqlAlchemy)模型定义中,我具有:

class City(Base):
    city_id = db.Column(db.Integer, primary_key=True)
    city_name = db.Column(
        db.String(50),
        unique=True,
        nullable=False)
    region_id = db.Column(
        db.Integer,
        db.ForeignKey(
            'region.region_id',
            ondelete="CASCADE"),
        nullable=False)

    country = db.relationship(
        'Region',
        backref=db.backref('cities'))

我的疑问是:在我的python模型中,所有这些uniquenullable是否必要?考虑到数据库表是通过SQL脚本文件而不是SqlAlchemy创建的。

此信息为ORM框架增加了有用的信息吗?

0 个答案:

没有答案