1

私は2つのテーブルを持っています。ドラマーとドラマーの種類。

DRUMMER_TYPE 
ID      TYPE
1       A1
2       A2
3       A3

DRUMMER
ID     NAME    TYPE
1      A       1
2      B       2
3      C       1

ドラマーにもっとタイプを追加する方法が欲しい。新しいテーブルを追加して、すでにコーディングが多すぎるドラマー テーブルの関係を維持したくありません。関係を維持する方法はありますか (コンマ区切りを使用しないでください)?

カンマで区切られた場合、次のようになります(他の方法はありません):

DRUMMER
ID    NAME    TYPE
1     A       1,2,3  
2     B       2,3
3     C       1
4

3 に答える 3

0

多対多の関係がある場合は、その関係を維持するために 3 番目のテーブルが必要です。

DrummerIs:  DrummerId, TypeId

これを行う方法は他にもありますが (複数の列、連結された値など)、いずれも重大な落とし穴があります。関係テーブルを使用して多対多の関係を維持することは、最終的に実装と使用が最も簡単であるため、ほぼ常に推奨されます。

于 2012-11-23T07:56:24.360 に答える
0

はい デザインは次のようになります。

Two tables :

1) Drummers     : id, name, type
2) Drummer_type : id, desc

The Drummers.type will be a reference to Drummer_type.id

Now IF you want to add more drummer's type, just insert a row in Drummer_type table

この点についてご不明な点がございましたら、お知らせください。

于 2012-11-23T07:29:43.983 に答える
0

ビット単位のフィールドを使用できます。詳細: http://home.comcast.net/~tolkin.family/bitwise.htm

たとえば、次のように 3 つの DRUMMER_TYPE をコーディングできます。

000 = Nothing
001 = A1
010 = A2
100 = A3

このようにして、DRUMMER の DRUMMER_TYPE A1 と A3 を保存できれば、その値101をデータベースに保存できます。この手法は、UNIX システムでパーミッションが機能する方法に似ています。

于 2012-11-23T07:30:43.167 に答える