培训课程数据库应该得到更新。现在,每个新用户(可由客户端编辑)存储在给定的培训课程中(可由客户端编辑)。用户被计算在内,所以没有比f.a更多的。每个培训班有12个用户。
,好的,那是旧的概念。。
对于新用户,每个新用户都可以订阅更多的课程,而不是有复选框的课程。对我来说,现在的困难是,我很难处理给定列中的SELECT/DELETE/UPDATE-语句中的数组概念(sID,它是训练id)。
表格培训课程:
id | from_date | til_date | | ...
---+-----------------------+---------------------+---------
2 | 2012-04-16 08:30:00 | 2012-04-16 08:30:00 | ...表培训用户:
id | sID | name | ...
---+-----+----------+---------------------------------------
1 | 2 | User A | ...
2 | 6 | User B | ...我喜欢把不同的课程写在一栏(2,4,7,9)中,用",“隔开。但问题是我不能再指望那一栏了。此外,safed课程数据仅将选中的课程输出到复选框中。但客户的客户必须手动更新课程成员。所以我不能“硬编码”每个课程到一个复选框。
有谁知道如何做好这件事吗?
谢谢和问候,伯纳德
发布于 2012-01-23 19:40:29
你至少需要三张桌子。
courses: (id, name, etc....)
users: (id, name, etc....)
user_courses: (user_id, course_id)从课程中添加/删除用户只需要更新user_courses表。新用户:添加记录,旧用户:删除记录。每个用户/课程配对都在user_courses中自己获得一条记录,而且您仍然可以很容易地完成计数。
将逗号分隔的值嵌入到字段中将否定关系数据的全部用途。您失去了相互关联数据的能力,因为您漂亮的干净用户<->课程映射位于DB无法为您解释的大量数字/逗号中。
发布于 2012-01-23 19:39:45
我建议在users和courses之间创建一个联合表。使用逗号分隔字段对于您在这里所做的工作来说是相当麻烦的。
用户:
user_id | user_name | ...课程:
user_id | course_name | ...User_Course_Union
union_id | user_id | course_id | ...然后,您可以轻松地进行基于SELECT COUNT(union_id) AS count WHERE ...的查询,并获取所需的所有数据。
发布于 2012-01-23 19:41:51
当你有一个多对多关系(比如给学生的课程),你通常应该利用他们之间的表格。也就是说,您应该有您的课程表,您的学生表,然后您的课程-学生表(或“注册”表)。注册表可以如下所示:
Id | Student | Course | Grade |
1 | A | 10 | Pass |
2 | B | 10 | Fail |
3 | A | 12 | Withdraw |这显示了两个课程(10和12)中的学生A,以及课程10中的两个学生(A和B)。这样做的一个好处是,您可以保存特定于注册的数据,例如年级或及格/不及格状态(如示例中所示)。
https://stackoverflow.com/questions/8977507
复制相似问题