2017-07-25 6 views
-1

私はコーディングに関する質問はしませんが、構造に関連する質問はありません。MYSQLIデータベース設計/構造

たとえば、ユーザーがサインアップしたり、ログインしたり、財産や家族のフォトブックなどを管理するサイトを持っていたら(フロントエンドが行っている仕事は無関係です)自分のアカウントを登録して作成すると、そのデータを保存する正しい方法は何でしょうか? 異なるユーザーデータを持つ単一のテーブルを一緒に持たないと仮定します。そのため、ユーザーログイン用に1つのテーブルを作成し、新しいユーザーごとに新しいテーブルを自動的に作成し、個人用のログインに関連するデータ?

例えば、オンラインの小切手帳を見ると、ユーザーログインを管理するテーブルがあり、登録プロセス中に、そのユーザーが自分の小切手帳のすべてのデータエントリを保持するテーブルが自動的に作成されます。あれは正しいですか?特定のユーザーデータを管理するために複数のテーブルが必要な場合はどうなりますか?

また、誰も私がチェックアウトできる適切なデータベース構造上の良いリンクを持っていますか?正しい用語がわからないと検索がうまくいかない。

ありがとうございます!

+0

''新しいユーザごとに新しいテーブルを作成する '' - いいえ。すべての方法でいいえ。レコード*ごとに新しいテーブル*を別のテーブルに作成しないでください。モデリングしているエンティティによってテーブルを構造化します。 – David

+0

ありがとうDavid!だからusersテーブル、トランザクションテーブルなど...それを得た。 – Jimistrator

答えて

0

は、各ユーザーのテーブルを作成し、ユーザーの一意の識別子をキーとされる一つのテーブルを作成し、そこにすべてのユーザーのデータを入れてないを行います。ただし、論理的な情報セットごとにそのようなテーブルを1つ作成できます。たとえば、usersユーザ情報を持つテーブル、postsユーザが作成したブログ投稿を持つテーブル、friendsユーザをリンクするテーブル。

この点に注意してください - あなたのアプリケーションの日々のオペレーションを決しては、(INSERTとUPDATEのように。)のみ操作演算を行、データベーススキーマ(のようなCREATE TABLEを)への変更を要求すべきであるFirst Normal Formされます被験者を読み上げるのに適した場所です。

+0

ああ、ありがとう。だから私はトランザクションテーブルにあるセル内の一致するユーザー名を持つすべてのトランザクションに一致する可能性のあるユーザーテーブル内のユーザー名を言うでしょう。また、リンクに感謝します。 – Jimistrator

+0

はい、それが基本的な考え方です。特に、実際のユーザ名(文字列)の代わりにユーザID(各ユーザに割り当てられた一意の整数)によって参照する必要があります。これは、ユーザがユーザ名を変更した場合、 –

関連する問題