我是 mysql 新手!拥有绝对的基础知识,例如仅创建表格。 我正在创建一个包含在线考试和结果的网站。我的字段包括
t_id, t_name(subject),ru_id, ru_name, ru_skl, hs_user, hsu_skl
图例:t 是测试。 ru 是注册用户。 skl是学校。 hs得分很高。 hsu 是高分用户。
我不知道如何排列表中的字段并建立关系以满足以下条件:
(1) 每个测试可以有多个用户注册,且使用同一个test_id。
(2) 应获取得分最高的用户并将其输入表中,用于相应的 test_id。
(3) 得分最高的用户所在学校也应录入表中,对应相应的test_id。
(4) 条件2 n 3应该是可检索的,以便使用php处理每月toppers列表等。
请您帮忙! :)
最佳答案
表:UserToTest 栏目:
test_id | user_id | score
这实际上就是您所需要的。只需插入 user_id
和 test_id
即可建立关系。添加分数
作为附加信息。
您想要拥有的所有其他数据,用户的最高分数和学校的最高分数都是您在查询时可以轻松计算的值。因此,没有真正需要将其写入表中,这只会让数据处理变得更加复杂,因为您必须在应用程序中添加触发器、约束或更多逻辑才能使这些值保持最新。
关于php - mysql 数据库规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38683606/