2017-12-31 88 views
0

を、次の対それが読みやすく、次の「ユーザー」テーブルを考えてみましょう:SQLジャンクションテーブルの命名:規則

CREATE TABLE user (
    user_id INTEGER PRIMARY KEY NOT NULL, 
    nick_name TEXT NOT NULL UNIQUE 
) 

今、私は で2人のユーザーを結ぶ多対多の参照テーブルを持っている「次"(これは双方向の関係ではない)。

私はsqlで名前を付けることについて多くを読んだことがありますが、ほとんどの場合、 は本当に矛盾しています(PascalCase、いくつかのsnake_caseなど)。

私の質問は次のうちどれですか?

可読性>大会:

CREATE TABLE user_following_user (
    follower_user_id INTEGER NOT NULL, 
    target_user_id INTEGER NOT NULL, 
    FOREIGN KEY ... 
    PRIMARY KEY ... 
) 

大会>可読性:

CREATE TABLE user_user_xref (
    user1_id INTEGER NOT NULL, 
    user2_id INTEGER NOT NULL, 
    FOREIGN KEY ... 
    PRIMARY KEY ... 
) 

れ、また関係で2人のユーザー(たとえば、ブロッキングテーブル)を持つ他のテーブルがあるかもしれないことに注意してください私は、(ジャンクション)テーブルの名前を付ける正しい方法が何であるか分からないのです。

多分、可読性を維持しながら規約に従う別の方法があります。私はすべてのヒントを感謝します。

答えて

2

毎回可読性が向上します。 SQLコードをメンテナンスする人に親切にしてください。それは今から6ヶ月であなたかもしれません。また、あなたが従っている "慣習"がどこから来たのか確認してください。あなたが何をしているのかの説明を取り除く(第2の例のように)条約を定義するのに誰が持っているでしょうか?
この情報は役に立ちました:the names we give things

+0

ありがとうございます。私はすべてのSQLに対して比較的新しいので、あなたの答えが大いに役立ちます。 – paxikek