0

データベースには、ユーザー名テーブルと管轄テーブルがあります。また、ユーザーを 1 つ以上の管轄区域に割り当てるための中間テーブルもあります。

user table
--------------
userID
first_name
jurID

jurisdiction table
-----------------
jurId
region

user_jurisdiction
------------------
userID 
jurID

これは次のような結果になります。

 user_jurisdiction
    +--------+-------+
    | userID | jurID |
    +--------+-------+
    |      6 |     2 |
    |      6 |     3 |
    |     11 |     2 |
    |     12 |     1 |
    +--------+-------+

複数の管轄区域を持つユーザーの場合、userdID 行を繰り返しても問題ありませんか? それとも、追加の JurID 列を用意して、使用しない場合は null に設定する方がよいでしょうか? そのような:

user_jurisdiction
+--------+-------++--------+-------+
| userID | jurID |  jurID | jurID  |
+--------+-------++--------+-------+
|      6 |     2 |       3|    null|
|     11 |     2 |    null|    null|
|     12 |     1 |    null|    null|
+--------+-------+--------+--------+
4

1 に答える 1

1

user_jurisdictionユーザーと管轄区域の間に多対多の関係があるため 、テーブルがあります。

したがって、user_jurisdiction1 人のユーザーに対して複数の行を入れ、管轄ごとに 1 つの行を作成します。

6   2
6   3
11  2
12  1

あなたの例のために。

UserJurisdictionIdまた、そのテーブルに自動インクリメントを含める必要があります。すべてのテーブルに主キーを設定することをお勧めします。

また、テーブルuser.jurIDから削除できます。user管轄区域に関するすべての情報は にある必要がありuser_jurisdictionsます。を使用しjoinて、特定のユーザーの管轄情報を取得します。

于 2013-03-30T12:20:53.590 に答える