Как правильно смоделировать БД? flask-SQLAlchemy

Разрабатываю автоматизацию обмена между двумя веб-приложениями. В каждой из них есть товары, и мне необходимо выстроить связь между товаром в приложении А и приложении Б (физически это один и тот же товар). Привязка идет по приложению А, т.е товар А - один, а к нему может быть несколько товаров из приложения Б. Как сделать в БД: сделать две модели для товаров из разных приложений, примерно как у меня сейчас:

class MsProduct(db.Model):
    __tablename__ = 'ms_products'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    ms_id = db.Column(db.String(255))
    title = db.Column(db.String(255))
    isbundle = db.Column(db.Boolean)
    pxp_products = db.relationship('PxpProduct', back_populates='ms_product', lazy=True)


class PxpProduct(db.Model):
    __tablename__ = 'pxp_products'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    pxp_id = db.Column(db.String(255))
    ms_product_id = db.Column(db.Integer, db.ForeignKey('ms_products.id'))
    ms_product = db.relationship('MsProduct', back_populates='pxp_products', lazy=True)

Или же записать это в одной таблице? Меня в этом варианте смущает только то, что ms_id сам по себе уникальный (т.к будет существовать только один товар А), а в таком случае придется несколько раз его повторять в базе. Предусматривается, что я добавляю одновременно и pxp_products и ms_product


Ответы (0 шт):