1
2
这是我的刺: 基本上,您需要将活动关联到1个(联系人或客户)和1个员工,这些员工将是活动的负责人。注意,您可以在这样的模型中处理引用约束。 还要注意,我添加了一个BusinessEntity表,用于连接所有人员和地点。(有时有用,但不必要)。放置BusinessEntity表的原因是,您可以简单地将活动的负责人和接收人引用给BusinessEntity,现在您可以让任何人或所有地方执行和接收活动。
与1名(联系人或客户)和1名负责活动的员工关联。注意,您可以在这样的模型中处理引用约束。
还要注意,我添加了一个BusinessEntity表,用于连接所有人员和地点。(有时有用,但不必要)。放置BusinessEntity表的原因是,您可以简单地将活动的负责人和收件人引用到BusinessEntity,现在您可以让任何人或所有地方执行和接收活动。
|
2
9
这听起来像是一种基本的多对多关系,我会以此为模型。
以此为模型。
|
3
4
这个数据库的“正确”设计是每列有一个列,您说您试图避免这种情况。这允许在这两列及其各自的表之间定义适当的外键关系。对引用两个不同表的键使用同一列将使查询难看,并且不能强制执行引用完整性。 活动表应具有外键contactID、customerID 要显示员工的活动:
|
4
4
在我看来,当客户和联系人似乎是同一实体的版本时,为什么要将它们定义为单独的实体,这一点尚不清楚。在我看来,客户是有附加信息的联系人。如果可能的话,我会创建一个联系人表,然后用该表中的字段标记为客户的联系人表,或者将其ID添加到包含扩展单例客户信息的表客户中。 如果你不能做到这一点(因为这是建立在现有系统之上的,其设计是固定的),那么你有几个选择。没有一个选择是好的,因为它们不能真正解决最初的缺陷,即客户和联系人分开存储。
|
5
2
如果我读得对,接受者就是客户和联系人的概括。
|
6
1
您将拥有如下内容:
在哪里?
然后,您将执行以下SQL select语句:
我知道需要更多的信息。 我们需要一个代表收件人(联系人和客户)的附加表: 此表应如下所示:
|
7
1
|
8
0
|
9
0
|
10
0
为另一个实体建模:ActivityRecipientContact和ActivityRecipientCustomer继承的ActivityRecipient,后者将保留正确的客户/联系人ID。 相应的表格如下:
这样,您还可以为每个收件人类型设置不同的其他列。 |
11
0
我会修改客户和联系人的定义。客户可以是个人,也可以是企业,对吗?在巴西,有“pessoa jurdica”和“pessoa fsica”两个术语,直接(且无意识)翻译成“法人”(商业)和“实体”(个人)。谷歌提出了一个更好的翻译:“法律实体”和“个人”。 因此,我们得到一张个人表,并有一张“LegalEntity”和“Individual”表(如果有足够的属性来证明这一点——这里有很多)。接收器成为一个FK-to-Person表。 联系人去哪儿了?它们变成了一个链接到人的表。因为联系人是另一个人的联系人(例如:我的妻子是我与一些公司的注册联系人,我是客户)。人们可以有联系。 注意:我使用了“person”这个词,但您可以将其称为“customer”来命名该基表。 |
Samo PoláÄek · sigmoid和tanh的数据集值分布 6 年前 |
Paolo Milini · Python中的标准化/规范化测试数据 7 年前 |
markzzz · 是否有一个函数来检索范围内可用的不同值的数量? 7 年前 |
Alastair_V · VLAD矢量表示的功率归一化步骤 7 年前 |
2milli · 如何在Oracle表中将逗号分隔的值拆分为多行 7 年前 |
Mei Yi · 在文本视图中突出显示某些文本背景,不区分大小写 7 年前 |