2011-09-05 93 views
2

我们正在开发的程序之一正在不断增长,我们正处于一个可以重新访问现有数据库并花时间“尝试正确”的阶段。我们正在研究的其中一件事是数据模型,以及我们如何模拟“派对”等等。我们已经做了直到现在确定来自交易记录的客户详细信息,但是现在我们希望存储更多的细节,并希望将我们对工作人员,供应商和成员等的常用数据进行组合。实现派对模型的正确方法是什么?

每一方都是个人或团体,但也可以有一个或多个角色,如雇主,客户,会员等。我认识到,我们模型中的各方不存在与另一方的关系(员工需要雇主,客户需要成员需要俱乐部等),既然我不想让人们添加像'雇主 - 客户'或'会员 - 分包商'这样的无聊关系,我现在有一张名为relationship的表,它预先定义了哪些角色可以一起去。我以前没有见过这个,我想知道,我们是否在正确的轨道上? (这里是一个简化的EER图表,以显示我们是怎么想的,这可能表示)

Party model EER diagram

我已经看了看方模型的原理的各种文档,但我一直没能找到任何(开放源代码)的例子,说明它在实践中的实际外观。任何人都可以推荐一个源代码(最好在MySQL中),或者分享一下你的经验,看看如何实现它,或许可以使用表结构或应用程序代码?

回答

1

This SO answer有各方的执行。

Another answer,将这种模式应用到文章和博客文章和故事中,可以解释评论中的一些细微之处。

+0

谢谢 - 我读过一些其他的答案,所以这些链接是赞赏 - 特别是对'CHECK'约束的提示。我认为你没有看到任何不寻常的东西,因为我从'party'中分离出'角色',并使其成为上图中“关系”的特征? – boatingcow

+0

通常情况下,雇主成为组织和员工是个人的要求将从一个表格开始,该表格有一个外键引用组织表(我猜,在你的模型中是“组”)和一个外键引用到个人的桌子。我认为这比将各方之间的所有关系放入单个表格更简单,更容易理解,更容易维护并更容易扩展。事实上,看起来你根本不需要表格“个人”和“群体”,这可能不是一件好事。 –

+0

现在我们被困在MySQL上了,所以看起来CHECK约束已经失效,并且应用程序级别的验证在!感谢您的评论 - 这让我想到了我们是否需要角色表,因为应用程序已经知道根据上下文查找哪个子方。顺便提一句,雇主不是一个团体,雇员是一个人等等,但是要知道他们是否是一个人是非常有用的。个人和小组与API一起存在,并且该图无论如何都是该问题的简化。 – boatingcow

相关问题