Mysql 成员和组表
我正在考虑一种数据库设计,它将有两个表成员和组。每个成员将至少属于一个组,但成员可能有多个组。反映这一点的最佳方法是为组成员身份创建一个ID数组并将其作为外键存储在成员记录中吗 N:M关系通常被建模为数据库中的一个额外表。 因此,您将有一个Mysql 成员和组表,mysql,sql,Mysql,Sql,我正在考虑一种数据库设计,它将有两个表成员和组。每个成员将至少属于一个组,但成员可能有多个组。反映这一点的最佳方法是为组成员身份创建一个ID数组并将其作为外键存储在成员记录中吗 N:M关系通常被建模为数据库中的一个额外表。 因此,您将有一个成员-表、一个组-表和一个成员组-表,您可以在其中存储两个主键 像这样: +----+----------------+ +----+---------------+ +-----+----+----+ |m_id|memb
成员
-表、一个组
-表和一个成员组
-表,您可以在其中存储两个主键
像这样:
+----+----------------+ +----+---------------+ +-----+----+----+
|m_id|member | |g_id|group | |mg_id|m_id|g_id|
+----+----------------+ +----+---------------+ +-----+----+----+
|1 |tom | |1 |groupA | |1 |1 |1 |
|2 |tim | |2 |groupB | |2 |1 |2 |
|3 |michael | +----+---------------+ |3 |2 |1 |
+----+----------------+ +-----+----+----+
您的想法-在
成员中存储多值属性
-表与第一个范式()冲突,后者规定每个属性必须是一个值。N:M关系通常被建模为数据库中的一个额外表。
因此,您将有一个成员
-表、一个组
-表和一个成员组
-表,您可以在其中存储两个主键
像这样:
+----+----------------+ +----+---------------+ +-----+----+----+
|m_id|member | |g_id|group | |mg_id|m_id|g_id|
+----+----------------+ +----+---------------+ +-----+----+----+
|1 |tom | |1 |groupA | |1 |1 |1 |
|2 |tim | |2 |groupB | |2 |1 |2 |
|3 |michael | +----+---------------+ |3 |2 |1 |
+----+----------------+ +-----+----+----+
您的想法-在成员中存储多值属性
-表与第一个范式()冲突,后者规定每个属性必须是一个值。这是一个经典
A是必需的,它将包含两个表中的主键
您需要3个表-成员、组和新的连接表,您可以将其称为成员组。这是一个经典
A是必需的,它将包含两个表中的主键
您需要3个表-成员、组和新的连接表,您可以称之为成员组