2016-05-14 66 views
-1

外键我有一个CUSTOMERS表和CONTACTS表它们之间的关系是一对多明显。 还我PROJECTS表和PROJECT_CUSTOMERS表关系一对多与关系一对一CUSTOMERSPROJECT_CUSTOMERS之间。 我的问题是,我有第五表PROJECT_CONTACTS ....我找不出哪个表应我指的是在这个表中,目前我指的PROJECT_CUSTOMERSCONTACTS表,这是正确的或者有更好的东西?摸不清如何管理“项目,客户,联系人的关系

+0

“显然是一对多”?两个客户不能有相同的联系人?项目同上。 (带来“一对一”的后果)。 – philipxy

+0

两位客户不能有相同的联系人 –

+1

您能否进一步解释这里的问题/背景/情况?正如@philipxy所说,对我们来说,你的问题并不明显,我们不知道这里的真实背景。简而言之,你能否解释这些表之间存在这些关系的原因?有了这个,我可以帮助你。 – Loa

回答

0

你的标题是“外键”,但你的问题似乎只是约列应该在哪些表何去何从。

首先,决定什么可以发生,你想要什么/需要对他们说的情况。 (这将你的表,列,候选键,外键和约束)。

每个表保存行,使真正的一些谓词(按列名参数报表模板)。您的设计似乎有:

CUSTOMERS(id, ...) -- ID identifies a customer and ... 
CONTACTS(id, ...) -- ID identifies a contact and ... 
PROJECTS(id, ...) -- ID identifies a project and ... 
PROJECT_CUSTOMERS(pid, cust_id, ...) -- project PID has customer CUST_ID and ... 
PROJECT_CONTACTS(pid, cont_id, cust_id)...) 
    -- project PID has contact CONT_ID and project pid has customer CUST_ID and ... 

外键有一个表&列的列表引用,形成一个候选键的表和列的列表。它表示第一个表中的值列表显示为第二个表中的值列表。如果是这样,申报一个外键。

+1

我已经稍微编辑了我的答案。 1.我猜想了上面的评论(这些评论决定了表格和栏目),关于你想说的情况。 *你*需要告诉我们*他们究竟是什么。 2.你不明白的第一件事是什么? – philipxy

+0

不错,现在我的问题是: PROJECT_CONTACTS.cust_id是指PROJECT_CUSTOMERS.cust_id还是CUSTOMERS.id? .....也应PROJECT_CONTACTS.pid引用PROJECT_CUSTOMERS.pid或PROJECTS.id ......请注意,联系人实际上是联系人(id,cust_id,.....)其中cust_id是指CUSTOMER.id –

+0

“[A FK]表示第一个表中的值列表显示为第二个表中的值列表,如果是这样,则声明外键”。所以重新PROJECT_CONTACTS:如果'项目PID已经联系了CONT_ID并且项目PID有客户CUST_ID和...,那么'CUST_ID是否标识了一个客户......并且对于一些'...'参数也是真的吗?即如果在一个表中出现“CONT_ID”,它会出现在另一个表中?而且,对于某些'CONT_ID'&''参数,项目PID是否与CONT_ID联系并且项目PID有客户CUST_ID和...? PS再次:请给*正确的*评论。 – philipxy