1. ホーム
  2. マイスル

[解決済み】複合主キーの正しい作成方法 - MYSQL

2022-04-10 07:52:09

質問

以下は、私が取り組んでいる強烈なセットアップの総体的な過度の簡略化です。 table_1table_2 はどちらもIDとしてオートインクリメントのサロゲート主キーを持っています。 info は、両者の情報を含むテーブルで table_1table_2 .

table_1 (id, field)  
table_2 (id, field, field)
info ( ???, field)

の主キーにするかどうかを決めようとしています。 info のIDを合成したものです。 table_1table_2 . もし私がこれをやるとしたら、どれが最も理にかなっているでしょうか?

(この例では、ID 11209とID 437を組み合わせています。)

INT(9) 11209437 (なぜこれが悪いかは想像がつく)

VARCHAR (10) 11209-437

DECIMAL (10,4) 11209.437

それとも他に何か?

これをMYSQLのMYISAM DBの主キーとして使っても問題ないでしょうか?

どのように解決するのですか?

コンポジット(マルチカラム)キーを使いたいのですが。

CREATE TABLE INFO (
    t1ID INT,
    t2ID INT,
    PRIMARY KEY (t1ID, t2ID)
) 

この方法では、t1ID と t2ID をそれぞれのテーブルを指す外部キーとして持つことができます。