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

複数のフィールドを使用して別のテーブルの主キーを参照するMySQL外部キー

    両方の外部キーに同じ列を使用しないでください。これは、ポリモーフィックアソシエーションと呼ばれることもあります。 、そしてそれは優れたデータベース設計のルールを破ります。

    これは、設計が不適切であり、FOREIGNKEY制約が1つの参照テーブルのみをサポートしていることの手がかりになるはずです。標準SQLではポリモーフィックアソシエーションはサポートされていません。

    代わりに、2つの列を作成します。1つはユーザーへの参照用で、もう1つはSystemProcessesへの参照用です。参照されるテーブルごとに1つの列。

    Logs
    uid (INT)  UsersID (INT)  SystemProcessesID (INT) Action
    1          2              NULL                    Jane Doe did this
    2          1              NULL                    John Doe did that
    3          1              1                       Hitman just killed John Doe
    

    Users列またはSystemProcesses列のいずれにも関連する参照がない場合は、NULLを使用して、該当する値がないことを示します。

    ポリモーフィックアソシエーションについて回答したその他の質問を確認してください。




    1. pggemのインストール;エラー:gemネイティブ拡張のビルドに失敗しました

    2. エラー:データソースが接続の確立を拒否しました、サーバーからのメッセージ:接続が多すぎます

    3. LinuxでMySQLのパフォーマンスを監視するためにdbWatchをインストールする方法

    4. Whileループを使用したMySQL挿入