私はデータベースにデータを格納するのが好ましい方法であるかというかなり基本的な質問をしています。mysqlにデータを保存する最も良い方法は?
"users"というテーブルがあり、各ユーザーはusernameとuser_idを取得しています。さて、私は、ユーザーがニュースにコメントするための "コメント"と呼ばれるテーブルを作成したいと思います。
コメントに「username」という名前の列を持ち、ログインしたユーザーの名前を格納するか、「user_id」という列を持つ方がよいでしょうか。 user_idを使用すると、SQL文に別のselect文が必要になります。 "(ユーザー名からusers.id = comments.user_idを選択してください)。パフォーマンスは、ユーザー名を保存するほうが良いようです。
私はデータベース内の重複データを避けるために読んだと思った。
どちらが優れていますか? USER_IDが主キーである場合
おかげ
これはまさに正しい – jlarson
まさに正しい。たぶん一つのことです:私は*常に*すべての私のテーブルに "id"を使用してください、それは "メイン" IDで、 "id_"で始まる外部キーは、フォージンキーのテーブルの名前です。したがって、私のクエリは次のようになります: << SELECT C.comment FROM users U JOIN comment C ON C.id_user = U.id "Olivier" >>のようなU.name。ポイントは何ですか ?あなたのデータベースを知らない人は、外来キーの構文を非常に簡単に推測し、長期間に渡ってあなたのデータベースは維持しやすくなります。 –