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

是的,设计应该是:

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

例如,您可以以这种方式对您的三个 DRUMMER_TYPE 进行编码:

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

这样,如果您可以为 DRUMMER 保存 DRUMMER_TYPE A1 和 A3,则可以将值保存101在数据库中。该技术类似于权限在 Unix 系统上的工作方式。

于 2012-11-23T07:30:43.167 回答
0

如果你有一个多对多的关系,那么你应该有第三个表来维护这种关系:

DrummerIs:  DrummerId, TypeId

还有其他方法可以做到这一点(多列、连接值等),但它们都有严重的缺陷。几乎总是建议使用关系表来维护多对多关系,因为最终它是最容易实现和使用的。

于 2012-11-23T07:56:24.360 回答