我有2张桌子。 Drummer和DrummerType。
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
答案 0 :(得分: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
如果您对此有任何疑问,请与我们联系。
答案 1 :(得分: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系统上的工作方式。
答案 2 :(得分:0)
如果您有多对多的关系,那么您应该有第三个表来维持这种关系:
DrummerIs: DrummerId, TypeId
还有其他方法可以做到这一点(多列,连接值等),但它们都有严重的陷阱。几乎总是建议使用关系表来维护多对多的关系,因为最终它是最简单的实现和使用。