0

私はユーザーに関するいくつかの情報を保存できる必要があり、私はこれに最も近い方法を考えていました。MySQLデータベース設計 - これらのフィールドをUsersテーブルに入れるか、新しいテーブルを作成しますか?

ソーシャルメディア

id - user_id - facebook - twitter_username - display_tweets 

いくつかの簡単な質問:

  • Facebookのフィールドは、彼らが1を持っているかどうかを確認するためにちょうどyesまたはnoですので、私は表示するかどうかを知っていますアイコン。それはちょうどenum 0または1であるべきですか?彼らは1つを持っていることを意味します。
  • display_tweetsと同じですが、enum 0または1である必要がありますか?

次に、主な質問は、これらをユーザーテーブルに保存するだけですか?だから私は3つのフィールド、facebook、twitter_username、display_tweetsを追加するだけです。また、いくつかのFacebookやTwitterを持っていない可能性があります。 usersテーブルにはすでにフィールドがあるので、私はそれをTOOに大きくしたくありません。

ありがとうございます!

答えて

2

はい、usersテーブルに入力してください。列は安価です(nullまたは小数字の場合)。特に、ユーザー表が非常に小さいことが保証されているため(大量のユーザーを持つことはできません)

もっと多くのテーブルに物を置くだけで、より多くの労力がかかります。私は以前に50列以上のテーブルを作成しました(正しく正規化されました - すべての50列には異なるデータ項目が保存されています)。

カラムがすべてのユーザに必ずしも関連しない場合は、NULLを許可することをお勧めします。 「魔法の価値」は良い考えではありません。

1

ブール値フィールドにはbitタイプが必要です。 boolまたはbooleanを使用することもできますが、これらはtinyint(1)の別名です(bit)。 enumは、例外をスローするのではなく、無効なエントリが入力されたときに空の文字列を挿入するため、使用しないでください。

関連する問題