如果用户在数据库中具有有效 ID,我该如何注册用户?

How do I register users if they have a valid id in the database?

我不知道如何更好地提出问题,但如果我解释一下我的问题可能会有所帮助:

我在 php 上创建了一个注册页面,在我点击注册按钮后,它会将其保存到数据库中,但我现在想要做的是在数据库中拥有一个学生 ID,并且只允许用户在以下情况下使用他们输入了有效的学生证。注册看起来像:

名字: 姓: 学号:

不知道该不该:

  1. 将预先确定的学生 ID 列表作为主键,让 php 比较学生 ID,如果匹配且没有输入名字或姓氏,则直接输入进入名字和姓氏。

有点像如果我注册 "Mark Go 201853" 代码会查看学生 table 中是否有 201853,如果它已经有名字,它会说 "User with this id already exists" 但是如果没有名字和姓氏,它将把 Mark Go 放在 First name 和 Last Name 行下的 emp id“201853”的列中。

  1. 在数据库中有一个单独的有效学生 ID 列表,注册后,它从该列表中选择一个学生 ID 并将其从有效学生 ID table 中删除并将其输入学生 table 连同名字和姓氏

  2. 如果我的想法不可行,您的建议。

抱歉,我已尽力解决 google 这个问题,但它有点难,所以在阅读了稍微相关的主题后,我想出了实现这个问题的想法,但如果你们可以提出更好的方法我会很高兴听到它。我不要求任何代码或其他东西,我只是想知道首先要做什么,以便我可以对其进行编码,并可能再次询问我的进度。

通常会有一个唯一的列来确定一个用户。它可能是用户名、电子邮件或 phone 号码等。名称可能相似,但用户名不能。因此,您必须向 table 添加一个唯一列。如果有新注册,请始终检查此唯一列是否有重复条目。

除了处理重复 ID 情况的 Kiren 的回答之外,我建议您在 PHP 中添加一些服务器端逻辑来检查给定的学生 ID 是否是有效的提交。由于此逻辑可以根据需要复杂化,因此这是比创建包含学生 ID 白名单的数据库更可靠的解决方案。修改代码以验证学生证是否有效比重复添加到 "good IDs."

的白名单稍微容易一些

例如,您的PHP可以确保学生 ID 仅包含数字字符,并且小于数据库可存储的最大可能值。