我对数据库很陌生,所以我非常感谢你提供任何帮助。
那么我想在这里尝试做什么,我想创建一个帮助学生组织学习小组的数据库方案。
学生应该能够检查一个组是否已经存在,如果没有创建它,并提供关于主题,位置,时间,可能添加书籍资源等的一般描述。
想要加入小组的学生应该能够搜索主题领域&具体科目,看看有多少人已经加入该组,如果适合他们就加入。
这些表格是否足以满足我想要实现的目标:
users = UID(主要和唯一),姓名,学期,主题,主题区域
groups = GID(主要),姓名,主题,主题范围,描述,资源, NumberOfUsers
membership = UID(fk到users.UID),GID(fk到groups.GID)
另外,我如何保持groups.NumberOfUsers动态变化,具体取决于有多少用户拥有该特定组的成员资格?
有没有办法限制群组可以拥有的用户数量?
干杯
答案 0 :(得分:0)
是的,你大部分是对的,我已经编译了一些可以帮助你的数据库模式。
表:组
对于特定群组的用户,应该有一个数据透视表,让我们为其命名, 表:user_groups
对于群组资源(如图书资源,视频等),您可以创建另一个数据透视表,如下所示: 表:groups_resources
对于您的NumberOfUsers问题,我建议不要保存,因为您可以通过简单的查询获取该信息,而不是使用该信息“厌烦”您的数据库。 但是,如果您仍想保存它,您只需更新您的表,foreach插入user_groups ..您的SQL查询将是:
Update groups SET numberofusers = numberofuser + 1 WHERE id = ?;
P.S。 - 在组中,您可以使用created_by OR甚至声明一个新列(administrator_id)并分配该组的管理员,该组具有编辑权限(正如您在脚本中计划的那样)。