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

他の列の値に依存する列

    サブタイプテーブルを追加することでこれを解決できます(柔軟性があり、後でタイプを追加したいので、列挙型よりもルックアップテーブルの方が好きです):

    ChoiceType
    ----------            --- the lookup table
    Choice      
    Desciption
    PRIMARY KEY(Choice)
    
    Event
    -----                 --- your table
    EventId 
    Choice 
    ... other stuff for all events
    PRIMARY KEY(EventId)
    FOREIGN KEY (Choice)
      REFERENCES ChoiceType(Choice)
    
    EventYL 
    -------               --- the YesLater table
    EventId 
    EventDate
    ... other stuff for YesLater events only
    PRIMARY KEY(EventId)
    FOREIGN KEY (EventId)
      REFERENCES Event(EventId)
    

    他の選択肢のために別のデータを保存したい場合は、EventYIを追加できます。 テーブル(Yes Immediateの場合 )、EventNO 、など。

    この設計の唯一の問題は、'Yes Later'ではないイベントを妨げるものが何もないことです。 EventYLに追加されます テーブルなので、これは別の方法で強制する必要があります。 MySQLのみにチェック制約がある場合、テーブルは次のように変更できます。

    EventYL 
    -------                --- YesLater version 2
    EventId 
    Choice
    EventDate
    PRIMARY KEY(EventId, Choice)
    FOREIGN KEY (EventId, Choice)
      REFERENCES Event(EventId, Choice)
    CHECK (Choice = 'YL')
    



    1. JPAを使用してSSH経由でリモートMySQLサーバーに接続するにはどうすればよいですか?

    2. テーブルを使用してMySQLデータとPHPでフォーマットされたExcelスプレッドシートを作成する

    3. ネットワーク経由でOracleデータベースにアクセスする方法は?

    4. データベースの列文字列がsqliteのクエリのサブ文字列であるかどうかを確認します