2016-08-18 1 views
0

私は自分の電子メールとパスワードだけを使ってユーザーを登録するアプリケーションを持っています。その後、数字、住所、週に働く時間などの個人情報を含むプロフィールを記入します。人事データベースの正規化方法、テーブルオプションの指定

このデータをすべて同じテーブルに保存するかどうか混乱していますまたは、次のを持っている:

users(認証用)、persons(プロファイル用)、address(UMため、アドレス)、numbers(あなたが要点を取得)。

私はこれに関するDBAの入力を知りたいと思います。どのようにして、500人のユーザーベースのためにこのデータベースを設計しますか?私がすべてのフィールドを - 今のところ約30ヵ所を同じテーブルに置いておくと、長期的には問題は起こるのでしょうか?

+2

エンティティ・リレーションシップ・メタファを念頭に置いて設計するのはおそらく賢いです。 a *ユーザ*は、それらが何であれ1つ以上の*番号*を持っていますか? *ユーザー*が複数の*アドレスを持つことはできますか*?関係が1:1以外のものである場合、別個のエンティティ、つまり別個のテーブルが必要です。 –

+1

ここでのユーザー数は無関係です。データベースを適切に設計する必要があります。デザインを標準化し、すべてを単一のテーブルに詰め込まないでください。 –

答えて

1

サイト使用データと請求データを分離することをお勧めします。

ユーザーがログインした後にホームページを表示するときは、通常、ユーザー名とアバターを表示する必要があります。また、電子メールや他のアカウント情報を使ってログインすることもできます。これは、いつも便利にしたいと思うものです。それを1つのテーブルに移動します。

住所(請求書、配達など)と電話番号は、通常、注文時に必要なものとして、別々に保存されます。

経験則:列数を30未満に抑え、可能な限り少ない表を読んでください。もちろん、エンティティを混在させることはありませんが、適切に設計する必要がありますが、このルールは、あなたが何かひどいものを作成していないという簡単なチェックです。

関連する問題