文章内容

2022/8/19 19:12:24,作 者: 黄兵

数据模型设计的一些总结

最近在设计 SQLAlchemy 数据模型的时候,在编写代码的时候,重是需要修改模型,以满足业务的需求。

将 SQLAlchemy 数据模型设计的时候,存在的一些规范作为总结,归纳如下:

在业务层面,需要根据选择的结果,显示不同的内容,模型里面应该设置 code 作为查询条件,示例:

class PaymentMethod(db.Model):
__tablename__ = 'payment_methods'
id = db.Column(db.Integer, primary_key=True)
icon = db.Column(db.String(128))
payment_method = db.Column(db.String(16), unique=True)
code = db.Column(db.String(16), unique=True)
account_recharge = db.relationship('AccountRecharge', backref="payment_methods",
lazy='dynamic')

上面是一个支付方式的模型代码,业务层面需要根据数据库中不同数据,显示不同的支付方式,原来业务层面代码示例:

function changePayMethod() {
// order 页面支付方式
$("#pay-method").bind("change", function (event) {
let getSelectVal = $(this).val();
if (getSelectVal === '1') {

上面是根据选择的 id,来显示不同的支付方式,但是存在一个问题:

当部署在生产环境中,数据同步的时候,会出现 id 不一样的情况(由于在 SQLAlchemy id 会自增,所以会出现 id 不一样的情况),这个时候,业务层面代码会失效。

如果改用 code 的方式,在数据同步的时候,直接也同步 code,这样就可以通过 code 来判断,加载不同的支付方式,避免了 id 改变的情况。

以上是SQLAlchemy 数据模型设计简单的总结,以后遇到其他的一些好的方法,再继续完善此文章。


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - 数据模型设计的一些总结

分享到:

发表评论

评论列表