我在试图解决数据库问题时遇到了问题。入学制度的情况如下。
表 1:学校 CREATE TABLE 学校(schoolID auto_increment、school_name varchar 等)
表 2:学生 CREATE TABLE 学生(studentID auto_increment、student_name varchar 等)
表 3:注册(我相信问题就在这里) CREATE TABLE 注册(enrolID,...)
问题是,以前系统的范围是允许注册来自任意数量的位置,在任何时候,并且只插入到数据库中,这很好,一切都是自动递增的。
范围发生了变化,因为他们不喜欢这样一个事实,即当报告完成时,当他们检索注册时,注册的数字是分散的。他们希望每个学校的注册 ID 是连续的。
我的一个想法是,选项(a)
为每所学校创建一个注册表(查看大约 1000-1500 所学校),这样每个插入的注册都将按顺序存储。
选项 (B)
有另一个表来记录为该学校插入的“lastrecord”。
CREATE TABLE lastrecord (schoolname varchar, nextrecord int)
这样,在每次插入之前,它必须检查数据库以查找该学校使用的最后一个 ID,检索该值,对其 +1,然后将其插入到招生表中。
使用这种方法,我会在注册 ID 前面加上学校 ID,例如 schoolID : 100
第 45 名学生的新注册 ID:10045。
然后在每次插入后,使用使用的记录更新该表。这似乎效率极低,但我正在努力寻找更好的解决方案。
预先感谢您的任何帮助。