基于多列的flask sqlalchemy动态前缀

时间:2018-11-28 17:35:35

标签: python postgresql sqlalchemy flask-sqlalchemy

我需要根据服务器可以添加的前缀制作唯一的代码。

例如,假设我有此表:

class product(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    idNo = db.Column(db.Integer,unique=True)
    productName = db.Column(db.String(255),nullable=False)
    manufacture = db.Column(db.String(255),nullable=False)
    uniqueCode = db.Column([LETS_CALL_THIS_X],nullable=False)

和卖方的另一张桌子:

class seller(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    idNo = db.Column(db.Integer,unique=True)
    Name = db.Column(db.String(255),nullable=False)
    branch = db.Column(db.String(255),nullable=False)

因此,我需要做的是向产品添加唯一代码(X),并且该唯一代码应具有“前缀”(基于来自多个表和列的部分的组合)+ 00000应该增加1。

例如假设

product class:
    id = 1
    idNo = 123456
    productName = Hair Brush
    manufacture = USA
    uniqueCode = X

seller class: 
    id = 1
    idNo = 98886123
    Name = Jackson B George
    Branch = NY 

假设我是否希望X等于Branch + (first 2 letters in Name) + (product ID ) + 00000+1

在这种情况下:

`X = NYJA12345600001`

是否可以仅在不使用flask-sqlalchemy的情况下使用PostgreSQL来执行此操作? 如果没有,我该如何在flask-sqlalchemy中写前缀并将其上传到PostgreSQL,并让它添加00001并增加1?

如果都可行,那么就不使服务器资源超载而言,哪种解决方案是最佳选择?

0 个答案:

没有答案