我正在尝试为一家充当中间人的公司设置一个数据库架构(将从供应商收集的元素出售给买家)。
这两个实体(供应商和买家)都可以概括为客户 - 它们都具有非常相似的属性(名称、电子邮件、密码、地址等...)和多个其他实体取决于这个。例如,为买家生成发票,为供应商生成结算(不同类型的文书工作)。问题是一个人(客户)可以同时成为买家和卖家。
我遇到的困境是如何为此设置数据库结构?
目前,我更倾向于将供应商和买家放在一张表中,并使用诸如角色列之类的内容来区分他们。通过这种方法,我可以避免数据冗余,并且仍然可以创建 View 以轻松地将供应商与买家与外界分开。
我的想法正确吗?您通常会如何解决这种情况?使用两个单独的表会更好吗?
感谢您的建议和经验:)
最佳答案
如果您了解用例,请考虑一下什么是粗略的解决方案。但这是相当危险的,最终有时巧妙的数据模型变得太复杂而难以理解和维护。
现在决定您的数据模型或组织是否适合以后的更改有多重要?你能敏捷吗?然后实现,什么是最适合您当前用例的,仅此而已!
顺便说一句。 如果人员和角色之间存在 1 对 2 的关系,您应该分解角色,而不是重复数据,或者创建两个属性 isBuyer 和 isVendor,或者在这些属性中放入对买方和供应商特定数据的引用,如果有的话。关于mysql - 一张或两张表 : that is the quest*on,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45126767/