0

私は学校のプロジェクトを作成しています。私の考えは、アカウントを登録し、そのアカウントに数人のユーザーを追加して、月々の共有費用の負債を計算できるサイトを用意することです。たとえば、ユーザー A は食料品に 500 を支払い、ユーザー B のみを支払います。これにより、ユーザー B はその月にユーザー A に対して 125 の負債を負うことになります。

私の問題は、アカウントをユーザーと分離したいということです。これで、電子メールとパスワードを含む Accounts というテーブルをセットアップし、次に特定のユーザー情報を含む users テーブルを作成しました。複数のユーザーが異なる資格情報を使用して同じアカウントにログインできるようにしたいと考えています。

ユーザー テーブル

ID, Name, Account_id etc.

アカウント テーブル

ID, Email, Password, date_added, date_updated etc.

これを行う最善の方法は何ですか?UsersForAccounts というクロステーブルを作成する必要がありますか?それとも、Users テーブルで複数の account_id を指定する必要がありますか?

4

2 に答える 2

1

1 つのアカウントに複数のユーザーがいるとは考えられません。これは、共通のグループ設定を共有する複数のユーザー アカウントと考えることができます。

したがって、期待どおりにユーザーのテーブルがあり、それぞれがその人に固有の値を持っていることは明らかです。

次に、グループの詳細を共有する関連テーブルがあります。友愛会か何かを例に挙げてみましょう。だからあなたはグループ名として Pi Phi を持っています。その中にはユーザー A、B、C がいます。非常に基本的なテーブル構造は次のようになります。

Users: id, email, password, name, group_id

Group: id, name

したがって、ユーザーは、この設定により、1 つのグループのみと関係を持つことになります。必要に応じて、ユーザーが多くのグループを持つことができるように、それをリレーショナル テーブルにすることができます。

ここでの一般的な考え方は、グループをユーザーへの個別の接続ポイントとして使用することであり、同じアカウントでアクセスする複数のユーザーである必要はありません。

それが不明な場合は、お気軽にお問い合わせください。更新する場合があります

于 2013-04-24T16:29:35.437 に答える
0

Usersテーブルのような構造を使用できます。

ID, Name, etc.

Accountsテーブルでは、最も単純なものを使用します。

ID, Email, Password, date_added, date_updated, User_ID, etc

これは多対一の関係と呼ばれ、あなたの場合には理想的です。

私があなたに渡すことができる小さなヒントは、すべてのフィールドに LOWERCASE を使用するか、特にフィールド名の最初の文字に「ID」の抜粋を付けて使用することです (これはIdentificationの頭字語 (または類似) にすぎません)

基本的な例では、Usersテーブルに次のフィールドがあります。

ID, name, etc.

上記の構造の Accountsテーブル:

ID, email, password, date_added, date_updated, user_id

これはすぐに役立つものではありませんが、PHP でデータベースを使用する際には非常に役立ちます。

于 2013-04-24T16:32:52.077 に答える