代码之家  ›  专栏  ›  技术社区  ›  NinjaCat

数据库设计:信用卡与信用卡类型关系实例

  •  3
  • NinjaCat  · 技术社区  · 15 年前

    帮助我更好地理解数据库关系的一般示例:

    | Credit Card |
    | ID          |
    | Card #      |
    
    | Credit Card Type |
    | ID               |
    | Type             |
    

    哪里信用卡类型。类型可能是美国运通,维萨卡,万事达卡。

    | Customer |
    | (PK) ID  |
    

    1.)似乎我不需要CreditCardType的ID字段,因为类型实际上是主键。即使存在唯一的varchar,为PK提供一个数字字段是否有益?

    2.)因为每一张信用卡必须有一个,而且只有一个,键入。。。我是否在信用卡和信用卡类型之间建立了1:1的标识关系?

    3.)客户可以拥有0、1或更多信用卡。所以我在信用卡和客户之间建立了1:n的关系。当我这么做的时候,MySQL工作台添加了客户ID场与场Customer.PersonTypeID字段作为主键。这就是我应该做的,还是我只需要添加客户ID字段作为主键。还是应该是FK?

    | Credit Card      | 
    | (PK) ID          |
    | Card #           |
    | (PK) Customer.ID |
    | (PK) Customer.PersonType |
    

    | Credit Card      | 
    | (PK) ID          |
    | Card #           |
    | (FK) Customer.ID |
    
    2 回复  |  直到 15 年前
        1
  •  1
  •   Klaus Byskov Pedersen    15 年前

    我会这样做:

    Customer
        Id int
    
    CreditCardType:
        Id int
        TypeName varchar (eg. Visa)
    
    CreditCard
        Id int
        CreditCardTypeId int
        CustomerId int
        CardNumber varchar
    

        2
  •  0
  •   jrj    12 年前