所以我试图为用户信息表创建一个正确的表关系,但最后却感到困惑。
以下是该方案:
<svg width="180" height="150" id="svgField">
<rect onclick="redZ()" id="redRect" x="0" y="0" width="100" height="100" fill="red" />
<rect onclick="blueZ()" id="blueRect" x="60" y="40" width="100" height="100" fill="blue" />
</svg>
到目前为止,这些是我的表格:
1. a **user** can have more than one **type**.
2. where the **type** are: founder, member, and crew.
3. for the crew type, it can have more than one **crew_title** ex: Crew Leader, PR Manager, etc.
4. and a crew-type-user can only have one **crew_title**.
我尝试在类型表格中创建crew_title,如下所示:
**user** table:
- user_id (PK)
- email
- password
**type** table:
- type_id (PK)
- type_name
**user_has_type** table:
- user_id (PK)
- type_id (PK)
但我不知道这是正确的方法,因为会有这么多空单元格,因为只有7-10名用户是机组人员。任何帮助都会很好:)
答案 0 :(得分:0)
您可以像这样保持用户和type_title之间的关系:
用户表: - user_id(PK) - 电子邮件 - 密码
类型表: - type_id(PK) - type_name
type_title 表格: - type_title_id(PK) - type_id - 标题
user_type_title 表格: - user_type_title_id(PK) - 用户身份 - type_title_id
SELECT U.*, TT.TITLE
FROM USER U
LEFT JOIN USER_TYPE_TITLE UTT ON UTT.USER_ID = U.ID
LEFT JOIN TYPE_TITLE TT ON TT.TYPE_TITLE_ID = UTT.TYPE_TITLE_ID
修改强>
因此,在插入之前,您应该检测哪个类型的标题转到哪个用户。例如,假设这是您的应用的仪表板屏幕,您正在设置用户类型标题。在屏幕上,您将首先选择一个用户(user_id),
SELECT * FROM USER;
然后是一个类型,
SELECT * FROM TYPE;
并且在选择类型之后将存在该类型的类型标题。您将从那里选择类型标题(type_title_id)。
SELECT * FROM TYPE_TITLE WHERE TYPE_ID = <selected_typeid_from_ui>;
因此,在插入相同的场景时:
INSERT INTO USER_TYPE_TITLE SET USER_ID = <selected_userid_from_ui>, TYPE_TITLE_ID = <selected_typetitleid_from_ui>;
答案 1 :(得分:0)
我对此有点新..但每当我发现我使用的给定表有一个太多的空条目时,我相信用来解决它的做法称为表的规范化 那么离开这个怎么样呢
输入表
type_I&#39; d(PK)
TYPE_NAME
并添加此
crew_subcategory 表
-User_Id(PK)
-Crew_id(FK)
crew_title 表
-Crew_Id(PK)
-crew_type title
船员子类别表仅包含具有船员头衔的条目 并且船员标题表根据id提供相应的标题。这类似于您用于标题和标题ID
的内容不确定这是否是最佳方法。让我知道你对它的看法:)
答案 2 :(得分:0)
我在想:
用户表: - user_id(PK) - 电子邮件 - 密码
类型表: - type_id(PK) - type_name
user_has_type 表: - user_id(FK)外键 - type_id(PK)
<强> type_title 强> ID(PK) TITLE_NAME
<强> title_has_type 强> title_id的(PK) type_id(FK)外键
<强> title_has_user 强> title_id的(PK) user_id(FK)外键