我正在为我工作的学校编写一个课程观察系统。
数据库结构如下所示:
我目前正在为表格开发输入表单,其中Observations
很多字段都需要勾选框。例如,该Focus
字段可以是任意数量的十二个选项;Positive
andNegative
字段可以是任意数量的近二十个选项。
在上图中,我曾经VARCHAR
允许一个serialize
'd 数组。
但是,我开始怀疑这是否是最好的下降路线,特别是考虑到我可能想要对数据进行一些半复杂的分析,例如top 5 staff for a specific positive attribute such as behaviour
(这将涉及计算behaviour
每个员工所拥有的属性数量表中的Positive
字段Observations
)。
这里有两个问题;
- 我应该使用额外的桌子吗?因为
Focus
我想第一个表有三个字段 -ID
(键和自动增量)Observation_ID
和Focus_ID
. 将Focus_ID
与另一个名为的表focii
或仅具有两个字段的表相关联 -Focus_ID
和Title
. 我需要两个表Focus
和三个表Positive
/Development
(相同的选项但不同的日志记录)。 - 如果我使用这些额外的数据库表,我的 SQL 语句在尝试从
Observations
表中检索信息时会是什么样子,包括所有关联的focuses
,positives
和developments
?
提前致谢,