数据库设计 - 来自多个来源的销售

问题描述:

我们目前拥有一个SQL数据库,其中包含一个表,用于保存我们公司的在线销售,该公司使用其他网站(例如Amazon)销售产品。表格模式已被设置为保存我们的物品当前销售的网站(比如说A站点)提供的特定销售数据/属性。数据库设计 - 来自多个来源的销售

我们正在向其他网站提供不同的属性,而不是网站A在出售商品时使用的属性(例如,网站A可能提供唯一的销售编号,而网站B可能不提供唯一的销售编号,提供一些其他的信息,网站A没有提供,我们仍然需要捕捉)。

问题是,如果我们在销售的每个“网站”上添加单独的销售表,因为模式会有所不同,或者尝试将所有销售合并到一个表中,而不管平台如何,只留下一些列如果它不属于特定平台,则为null?或者可能采用混合方法,只将两个站点间不常见的属性分隔到不同的表中,而“主”销售表包含共享的属性(sale_price,sale_date等)?

此外还有其他表格可用于存储通过唯一标识符链接到销售表的内部信息(产品ID,成本等)。无论选择哪条路线,我都需要提供一个可以在所有表​​格中使用的唯一标识符(例如,自动递增的sale_id),并将其存储在表中以供参考/连接。

欢迎任何建议!

+0

您是否有库存,您将存储哪种类型的交易? –

+0

不,我们使用另一个系统来跟踪库存。该系统只存储个别产品的销售。 – user2175152

销售是销售>>相同的数据属于同一张表。我绝对不会建议将您的销售分成几个表格,因为这可能会产生很多困难:销售统计等。尽量保持所有销售在一张桌子上。

如果这是一个非常小的项目,它可能是将不同字段集成到一个表中的最佳选择。否则,您可能会尝试为每个销售平台创建配置文件:在这种情况下,请使用实体 - 属性 - 值模型。

+0

是的,我可以想象使用多个销售表进行报告的努力。这应该会影响到不同网站之间的十几个或更少的字段,因此可能不值得使用EAV路线。谢谢! – user2175152

请勿为每个网站添加表格。这听起来像是你在站点和属性之间有多对多的关系,所以用这种方式设置你的数据库。另外,对于您需要的任何唯一标识符,请自行创建。