sql >> データベース >  >> RDS >> Mysql

最高のMySQLテーブル構造:2つの親、1つの子

    CREATE TABLE Group ( 
        GroupID       integer    NOT NULL
      , Name          varchar(18)
      , Description   varchar(18)
      , GroupType     varchar(4) NOT NULL
      -- all columns common to any group type
    );
    ALTER TABLE Group ADD CONSTRAINT pk_Group PRIMARY KEY (GroupID) ;
    
    
    CREATE TABLE BusinessGroup ( 
        GroupID   integer NOT NULL
      -- all columns specific to business groups
    );
    ALTER TABLE BusinessGroup
        ADD CONSTRAINT pk_BusinessGroup  PRIMARY KEY (GroupID)
      , ADD CONSTRAINT fk1_BusinessGroup FOREIGN KEY (GroupID) REFERENCES Group(GroupID) ;
    
    
    CREATE TABLE SocialGroup ( 
        GroupID    integer NOT NULL
      -- all columns specific to social groups
    );
    ALTER TABLE SocialGroup
        ADD CONSTRAINT pk_SocialGroup  PRIMARY KEY (GroupID)
      , ADD CONSTRAINT fk1_SocialGroup FOREIGN KEY (GroupID) REFERENCES Group(GroupID) ;
    
    
    CREATE TABLE Person ( 
        PersonID  integer NOT NULL
      , GroupID   integer NOT NULL
    );
    ALTER TABLE Person
        ADD CONSTRAINT pk_Person  PRIMARY KEY (PersonID)
      , ADD CONSTRAINT fk1_Person FOREIGN KEY (GroupID) REFERENCES Group(GroupID) ;
    


    1. 副選択するか、副選択しないか?

    2. 値を挿入する場合の使用例

    3. T-SQLで2つの日時の差を計算する方法

    4. MySQL列の値を0または''ではなくNULLに設定することのディスクスペースへの影響