sqlalchemy的model中定义的外键名和对应的数据库中定义的外键名必须一样吗?

发布于 2022-09-05 22:00:24 字数 1784 浏览 40 评论 0

比如说,

class TeachingTrains(Base):
    __tablename__ = 'teaching_trains'
    train_id = Column(Integer, primary_key=True)
    name = Column(String(40), default='')
    user_id = Column(ForeignKey('user.user_id'), nullable=False, index=True)
    created = Column(DateTime, nullable=False, default=datetime.now)
    update_user_id = Column(ForeignKey('user.user_id'), index=True,
                            default=None)
    updated = Column(DateTime, nullable=False, default=datetime.now)
    deleted = Column(DateTime, default=None)

    update_user = relationship(
        'User', primaryjoin='TeachingTrains.update_user_id == User.user_id')
    user = relationship(
        'User', primaryjoin='TeachingTrains.user_id == User.user_id')

这个model中定义的外键,和

CREATE TABLE `teaching_trains` (
  `train_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `name` varchar(40) NOT NULL DEFAULT '' COMMENT '名称',
  `user_id` int(11) NOT NULL COMMENT '创建人ID',
  `created` datetime NOT NULL COMMENT '创建时间',
  `update_user_id` int(11) DEFAULT NULL COMMENT '修改人ID',
  `updated` datetime DEFAULT NULL COMMENT '修改时间',
  `deleted` datetime DEFAULT NULL COMMENT '删除时间',
  `correlation_lesson` varchar(40) DEFAULT '[]',
  `example_video` varchar(40) DEFAULT '' COMMENT '练习示范视频',
  PRIMARY KEY (`train_id`),
  KEY `lessons_user_id` (`user_id`),
  KEY `lessons_update_user_id` (`update_user_id`),
  CONSTRAINT `lessons_update_user_id` FOREIGN KEY (`update_user_id`) REFERENCES `user` (`user_id`),
  CONSTRAINT `lessons_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=20046 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='练习信息';

这个表中的外键名,有关联吗?
是否是model中只要指定清楚了字段,表中也指定了同样的字段就行了,外键名无所谓?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷爱 2022-09-12 22:00:24

外键名字随意,字段名对应好就行

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文