2016-12-03 68 views
0

所以,首先,我认为我有一个设计问题,但不知道如何解决它。实现一对一的关系

我有两个表:

------- 
Company 
------- 
CompanyId 
CompanyName 
----------- 

和:

-------     
Company Administrator 
------- 
AdminId 
AdminName 
----------- 

我的想法是一对一的,因为一个公司可以有ONA公司的管理员和一个公司管理员CNA有关系一家公司。

我的问题: 我是否必须在每个表中放置一个外键,还是应该以某种不同的方式实现它(可能更好)。

我无法真正合并这些表格,因为在我的应用程序中我希望公司管理员创建公司。

任何想法?

+0

嗨罗伯特!你是说你想让公司的管理员拥有一家公司和一家公司属于管理员吗? – Uzzar

+0

是的,我猜。一家公司只能有一个管理员,而一个管理员也只能有一个公司。我对网页的想法如下:管理员首先注册自己,然后从他自己的档案创建他的公司。 –

回答

3

阅读您的问题为:

CompanyAdministrator有一个公司公司属于CompanyAdministrator

如果此更正: - 您希望Company跟踪它属于哪个CompanyAdministrator。您的表格将如下所示:

Company: 
    - id 
    - company_name 
    - any other attributes of the company you want to track 
    - company_administrator_id 

    CompanyAdministrator: 
     - id 
     - any other attribute of the comanpy_administrator you want to track. 

基本上,company_administrator_id居住在公司表中。

0

当你拥有1对1的关系,你可以使用表格的每一个主键外键在其他表,例如:

------ 
    **Company** 
    ------- 
    CompanyId 
    CompanyName 
    Admin_id 
    ----------- 
    -------     
    **Company Administrator** 
    ------- 
    AdminId 
    AdminName 
    ----------- 
    **OR** 
    ------ 
    Company 
    ------- 
    CompanyId 
    CompanyName 
    ----------- 
    -------     
    Company Administrator 
    ------- 
    AdminId 
    AdminName 
    Company_id 
    -----------