具有不同卖方类型的产品的数据库设计

问题描述

我正在尝试设计一种存储常规用户和组织出售的历史定价数据的方法。我目前具有以下数据库结构(以后我分别考虑用户和卖方,它们分别属于用户表和卖方表,它们都能够通过交易表记录销售情况):

seller
- id (PK)
- name
- size

event
- id (PK)
- name
- location
- date
- seller_id (FK)

transaction
- id (PK)
- brand
- model
- serial_number
- price
- currency
- event_id (FK)

user
- id (PK)
- email
- name
- created_at

每个卖方(在卖方表中)可以有多个事件,每个事件可以发生许多交易,而一个事件只能属于一个卖方,而一个交易只能属于一个事件。我从外部数据中添加了所有卖方/事件/产品数据,但是我现在尝试将 用户(来自用户表)纳入产品表关系 ,因此用户可以绕过事件表直接将已售出的产品添加到同一产品表中, ,因为他们的销售不会一次井井有条地进行事件, 对卖家的作用

卖家仅在有很多交易的“事件”中进行销售,但是用户只会进行销售,并且交易将直接连接到用户表,而不是与发生销售的“事件”相关。

我的问题是“用户”和“卖方”表非常相似,并且将在事务表中使用相同的数据列,但事件表不适用于普通用户。我需要一种方法来区分网站上的用户与我从外部收集的数据之间的逻辑(即,这些卖家不像记录历史交易的普通用户那样访问网站)。

我尝试了一些事情,包括

  • 添加一种多态关系,其中交易会变形为用户或事件,但是在一起查询卖方和用户数据时遇到了困难
  • 用户的关系添加到卖方表中,但是必须创建一个虚拟的“事件”,所有销售都将落入该事件,而实际上,他们没有像标准卖方那样的事件,他们只是出售产品。
  • 修改事件数据的存储方式,以便可以直接查询所有交易

类似“选择*来自其中Seller_id =吗?的交易”之类的东西这是这里的目标,但我找不到一种在保留事件数据的同时有意义的方式将这两个数据源变形在一起,并简化了后端用户添加数据的逻辑。

谢谢您的任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)