gpt4 book ai didi

mysql - 关系型数据库设计(MySQL)

转载 作者:行者123 更新时间:2023-11-29 09:15:08 25 4
gpt4 key购买 nike

我有一个用户表,用于存储用户信息 - 例如姓名、出生日期、位置等。

我还创建了一个名为 User_Options 的链接表 - 用于存储多值属性 - 这基本上存储了复选框选择。

我有一个前端表单供用户填写并创建他们的用户个人资料。以下是我创建的用于生成复选框选项的表格:

Table User_Attributes=====================id    attribute_name---------------------1     Hobbies2     Music
Table User_Attribute_Options======================================id    user_attribute_id    option_name --------------------------------------1     1                    Reading2     1                    Sports3     1                    Travelling4     2                    Rock5     2                    Pop6     2                    Dance

因此,在前端表单上有两组复选框选项 - 一组用于爱好,一组用于音乐。

这是用户表:

Table User========================id    name           age------------------------1     John           252     Mark           32
Table User_Options==================================================id    user_id         user_attribute_id      value--------------------------------------------------1     1               1                      12     1               1                      23     1               2                      44     1               2                      55     2               1                      26     2               2                      4

(上表中'user_attribute_id'是父属性的ID,'value'是属性选项的ID)。

所以我不确定我是否正确或有效地完成了这一切。我知道有一种方法可以在同一个表中存储分层数据,但我更喜欢将数据分开。

我主要关心的是 User_Options 表 - 其背后的想法是只需要一个链接表来存储多值属性,而不是为每个多值属性都有一个表。

最佳答案

我能看到的唯一要更改的是,在关联表 User_Options 中,您有一个似乎没有任何用途的 id。该表的主键将是所有三列,我认为您不会通过 id 引用用户拥有的选项 - 您将通过 user_id/user_attribute_id 获取它们。例如,给我所有用户选项,其中 user 为 1,用户属性 id 为 2。使用附加字段唯一键控这些记录似乎是无关的。

我认为否则表格的总体形状及其关系对我来说是正确的。

关于mysql - 关系型数据库设计(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com