gpt4 book ai didi

mysql - 动态表单的数据库设计

转载 作者:行者123 更新时间:2023-11-29 11:39:17 28 4
gpt4 key购买 nike

我想创建一个部分动态的表单。多个字段将保存到 training_session 表中,标签将保存到 tags 表中,并通过 training_tags 连接到训练 session 。然而,除了这些领域之外,还必须是动态的。如果你看这张图片,你就会明白:

enter image description here

不过,我正在努力为这些动态字段设计数据库。我想出了这样的事情:

字段类型

 id - self explanatory
type - holds the value int or string

字段

id - same
id_field_type - which type of value does the field hold?
label - could also be "name", I guess. Just to know, which field it actually is
value - the actual value of the field

解决此类问题的最佳实践和解决方案是什么?

最佳答案

既然您标记了 MySQL,那么看来您正在寻找关系数据库设计。关系数据库是normalized消除数据重复。

看看你的表单,我们可以创建7个数据库表;培训类(class)、标签、培训类(class)标签、潜水、培训类(class)潜水、设备和培训类(class)设备。您已经想出了其中 2 个表格。一般情况下,表名都是单数。

那么,让我们看看如何定义培训类(class)表。

Training Session
----------------
Training Session ID
Training Session Title
Training Session Description
Training Session Time Stamp
Training Session Duration

训练 session ID 是一个自动递增的整数或长整型,也是表的主键或聚集键。其余属性应该是不言自明的。

我们要查看的下一个表是标签。

Tag
---
Tag ID
Tag Name
Tag Description
...

与培训类(class)表一样,标签 ID 是该表的主键。标签表为可应用于训练类(class)的每个可能标签保留一行。

现在,我们有培训类(class)并且有标签。下一步是将培训类(class)与适当的标签相关联。为此,我们将创建一个连接表,即培训 session 标签。

Training Session Tag
--------------------
Training Session ID
Tag ID
...

此表的主键是训练 session ID 和标签 ID 的组合。这将为您提供特定培训类(class)的标签。如果您想要特定标签的培训类(class),则需要一个额外的唯一索引(标签 ID、培训类(class) ID)。

我认为您可以从这里找出潜水和设备表以及训练类(class)潜水和训练类(class)设备连接表。

关于mysql - 动态表单的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36086965/

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