主キーがuser_id
のテーブル1と、user_id
が外部キーであるテーブル2があります。
表2には、user_id
ごとに1つのレコードしか存在できず、それなしではレコードは存在できません。
質問:表2のuser_id
を同時に外部キーと主キーの両方にすることはできますか?はいの場合、長所/短所は何ですか?
はい、これを行うことができます(そして、データベース設計の観点から行う必要があります)。
ただし、user_id
はテーブル2の主キーです。実際には、テーブル2の各行はユーザーに対応していると言っていますが、各行がユーザーに対応しているテーブルがすでにあります。テーブル1。これにより、「なぜ表2のすべてのデータを表1のnull可能な列に入れませんか?」結局のところ、2つのテーブルがあるということは、このデータを取得するには、1つではなく2つのクエリを実行する必要があることを意味します。
ここで、この方法が適切なシナリオがいくつかあります。
それは良い考えかもしれませんが、それはあなたのアプリケーションの詳細に依存します。