Joe*_*Joe 4 mysql database database-design
在我的数据库中,我目前有两个表几乎相同,除了一个字段.
为了快速解释,通过我的项目,每年企业向我提交他们销售的供应商列表,并从中购买东西.由于这是每年进行的,我有一个叫做的表sales
和一个叫做的表purchases
.
因此,在sales
表中,我将有领域,如:BusinessID
,year
,PurchaserID
等,以及完全相反会在purchases
表中,除了会有SellerID
.
所以基本上两个表都是完全相同的字段,除了PurchaserID
/ SellerID
.我继承了这个系统,所以我没有这样设计DB.我正在辩论将这两个表梳理成一个叫做表的表suppliers
,只是添加一个type
字段来区分它们是卖给还是购买.
这听起来像个好主意吗?关于为什么这不是一个好主意,我有什么遗漏吗?
如果它没有坏,就不要修理它。让它们分开。
由于系统已经构建完毕,因此只有当您发现自己在两个表之间进行大量查询(例如大而令人讨厌的 UNION 查询)时,我才会考虑这一点。将两个表连接到一个表中可以使诸如“向我显示在这些日期之间出售/购买的所有卖家或买家......”之类的查询变得更加容易。
但从业务规则的角度来看,这两个群体的待遇似乎非常不同,因此此时可能不值得麻烦地进行应用程序更改。(每个查询都必须有一个“WHERE Type = 1”或类似的东西)。
如果您在数据库设计阶段问过这个问题,我的答案可能会有所不同。