实施一对一的关系

时间:2016-12-03 20:17:47

标签: mysql sql database

所以,首先,我认为我有设计问题,但不知道如何解决它。

我有两张桌子:

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

并且:

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

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

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

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

有什么想法吗?

2 个答案:

答案 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位于公司表中。

答案 1 :(得分:0)

如果有1对1的关系,则可以将表的每个主键用作另一个表中的外键,例如:

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