私はソーシャルネットワークをベースにしています。私はPHPでサイトを構築しており、MySQLデータベースを使用してユーザーデータを格納したいと考えています。私はデータベース/テーブルを作成できます(私はphpMyAdminを使用します) 私は何枚のテーブルが必要で、どのようなものが私のWebアプリケーションにとってより実用的であるかはわかりません。テーブルがたくさんあるのは賢明でしょうか?たとえば、USERS表。列名USER_ID、EMAIL、PASSWORD、LAST_LOGINと、各ユーザーのアカウント設定を保持するUSER_SETTINGSという名前の表と、「ステータス更新」に関連付けられた名前と値を持つPOSTSという別の表があります。それとも、1つのテーブルにすべてを持つことは賢いですか?ベストプラクティスは何ですか?MySQLデータベーステーブルの構造化
答えて
「すべてを1つのテーブルに保存」しないでください。たぶん "多くのテーブル"に終わるでしょうが、それは悪いと思う - 基本的に、論理的な使用法に基づいてデータを分割するべきです。
たとえば、DIDによってユーザーテーブルに投稿が保持されているとしたら、どうすればよいのですか?彼らが新しい投稿をするとどうなりますか?別のフィールドを追加しますか? (悪い) - 別の項目をフィールドに追加し、文字(悪い)などで区切ります。それを行う唯一の本当の方法は、別のテーブルを用意することです。 は、ユーザーと同じテーブルに投稿を保管しないでください。
「プロファイルデータ」(またはそれを呼びたいもの)に関する限り、私はそれを別々にしておきたい - 一部の人々は、それを好みのところでユーザーテーブルに置いておきたい。私は現在だけでなく、ソーシャルネットワーキングサイトを構築しています
//users table
id,
email,
password,
last_login,
//...
//profiles table
id,
user_id,
profile,
age,
gender,
//...
//posts table
id,
user_id,
data,
created (datetime),
modified (datetime)
:あなたのケースでは
は、私はこのようなものをお勧めしたいです。 をすべて1つのテーブルに保存しないでください。実際には私は言っている限り、あなたはできません大量の問題に直面することなくすべてを単一のテーブルに保ちます。
ユーザーは、パスワードを隠しユーザーIDジャンクションを持つ別のテーブルに保管したいと考えています。検証と出力のためにデータの整合性をどのように設定するかによって、プロファイルデータ自体は、ユーザーテーブルに接続されたテーブルを含む場合があります。
また、私はすべての投稿を別々のテーブルに保管します。これは純粋に将来のユーザーIDに基づいてクエリを実行し、投稿の数に制限したり、表示しているものに適した投稿に制限したりすることができます。簡単に言えば、usersテーブルにそれらを持つことは、あなたが書いたものであると言っているようなものです。
- 1. テーブル構造を最適化するMySQL
- 2. XML構造からMySQLテーブル構造へ
- 3. 構造化データテストツールブレッドクラムエラー
- 4. ストアドプロシージャの構造化
- 5. MySQL/PHP - マルチティアカテゴリ構造
- 6. PHP \ MySqlマルチユーザシステムバックエンド構造
- 7. MySQLのDB構造のヘルプ
- 8. フォーラムのウェブサイトのMysql構造
- 9. MySQLのタイムテーブルのデータ構造
- 10. 木構造の関数Mysql
- 11. ソーシャルネットワークPHP/MySQLの構造
- 12. MySQLの構造 - ユニークなユーザグループ
- 13. mysql構造の最適化とスケーリング大規模なメーリンググループのクエリ
- 14. 構造化された、構造化されていない、半構造化されたデータ
- 15. ツリー構造の可視化
- 16. Joomlaの構造化データ
- 17. playframeworkアプリケーションの構造化
- 18. 構造化Haskell(gtk2hs)GUIの
- 19. モデルの構造化 - MVC(PHP)
- 20. HTML CSSの構造化コンテナ
- 21. Androidのレイアウト構造化
- 22. 構造体とのカプセル化
- 23. JSON構造の簡略化
- 24. パーズツリー構造の可視化
- 25. Gdataスプレッドシートクエリの構造化
- 26. Excel構造化参照テーブルの構文
- 27. MYSQLテーブル構造グローバルNULL値
- 28. mysql構造体double unique
- 29. C構造体、構造体へのポインタ、適切な初期化
- 30. Oracleストアドプロシージャ構造化パラメータ
http://www.devshed.com/c/a/MySQL/An-Introduction-to-Database-Normalization/およびhttp://goo.gl/m6KSX –
構造を保存してくださいきれいに分離された。つまり、おそらく多くのテーブルを持つことになります。 – Alp