1

(PHP + mySQL を使用)

この状況を処理する最善の方法について、誰かが私にアイデアをくれることを願っています。

私は2つのテーブルを持っていusersますforms. users テーブルにはユーザー名、パスワード、名前などが保持され、forms テーブルにはさまざまな異なる html フォームが保持されます。

ユーザーごとに、ユーザーがアクセスできるフォームを指定したいと考えています。ユーザーテーブルに「forms_allowed」になる新しいフィールドを作成し、ユーザーがアクセスできる各フォームのform_idをコンマで区切って保存することを考えていました。3,6,8,15のようなもの

次に、ユーザーがアクセスを許可されているフォームと、要求されたフォームにアクセスできるかどうか (など) を確認したい場合は、そのフィールドを取得して展開し、form_id を確認します。

これは面倒で効果のない方法のように思えます。誰かがより良いアイデアを持っていますか?

ありがとう!

4

1 に答える 1

4

user_id保持してform_idペアにする別のテーブルを作成します。これが多対多の関係です。

tblUsers:

user_id | name |...

tblForms

form_id | content | ...

tblRelation:

user_id | form_id

したがって、単一のクエリで簡単に情報を取得できます。

SELECT * FROM `tblUsers` AS `t`
JOIN `tblRelation` as `r` ON (t.user_id = r.user_id)
JOIN `tblForms` as `f` ON (f.form_id = r.form_id)
于 2012-10-12T12:33:25.350 に答える