Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 授权用户创建帐户的数据库设计_Php_Mysql - Fatal编程技术网

Php 授权用户创建帐户的数据库设计

Php 授权用户创建帐户的数据库设计,php,mysql,Php,Mysql,我正计划为我的学校建立一个小的社交网络风格的项目,但我在创建数据库设计时遇到了一些困难。例如:如果访客在我们学校注册,他们可以创建一个帐户。他们需要给出自己的学生编号、名字、姓氏、中间名和课程等 应用程序应生成唯一的验证代码。代码将以学生的电子邮件地址发送。当学生准备激活他们的帐户时,他们应该输入他们的学生号和应用程序生成的验证码,如果验证码和学生号在我们的数据库中匹配,他们将自动转到一个页面,在那里他们可以输入用户名和密码 验证表 ID,StudentNumber,Code,FirstName

我正计划为我的学校建立一个小的社交网络风格的项目,但我在创建数据库设计时遇到了一些困难。例如:如果访客在我们学校注册,他们可以创建一个帐户。他们需要给出自己的学生编号、名字、姓氏、中间名和课程等

应用程序应生成唯一的验证代码。代码将以学生的电子邮件地址发送。当学生准备激活他们的帐户时,他们应该输入他们的学生号和应用程序生成的验证码,如果验证码和学生号在我们的数据库中匹配,他们将自动转到一个页面,在那里他们可以输入用户名和密码

验证表

ID,StudentNumber,Code,FirstName,LastName,MiddleName,Gender,Course.
ID,StudentNumber,UserName,Password,E-mail.
ID,StudentNumber,Code,FirstName,LastName,MiddleName,Gender,Course.
用户表

ID,StudentNumber,Code,FirstName,LastName,MiddleName,Gender,Course.
ID,StudentNumber,UserName,Password,E-mail.
ID,StudentNumber,Code,FirstName,LastName,MiddleName,Gender,Course.
用户配置文件表

ID,StudentNumber,Code,FirstName,LastName,MiddleName,Gender,Course.
ID,StudentNumber,UserName,Password,E-mail.
ID,StudentNumber,Code,FirstName,LastName,MiddleName,Gender,Course.
在我的设计中有什么建议吗?

验证表是空的 当用户注册时。他被列入核查表。如果用户单击了电子邮件,那么您就拥有了这个庞大的代码,可以将字段从验证复制到用户+配置文件

在概要文件中添加一个字段,意味着您必须对验证执行相同的操作

只需在用户表中添加一个字段“已验证”。然后更改您的查询:

SELECT * FROM user WHERE verified = true;
或者您可以选择状态字段。例如,用户可以被验证,但由于拖拽而被阻止

Studentnumber是主键 那么,为什么会有en ID列呢?学生编号是唯一的。。。只需将其用作主键,并去掉四处浮动的ID

专栏名称 不要在列名中使用-或大写字母。别这样

数据库设计 此时,有一个用户有一个配置文件,配置文件有一个课程

那么,如果一个用户注册了2门课程,他将拥有2个配置文件?祝你好运保持这些档案同步

代码不是配置文件 我认为列代码是指验证代码?如果是,则称之为验证码

为什么它是个人资料的一部分?它应该是用户的一部分


上帝保佑

为什么要用这么多桌子?一个用户表就足够了

使用者

ID、学生号、用户名、密码、电子邮件、名、姓、中间名、性别、课程、验证代码、已验证

这样,您就可以保存所需的所有信息。
然后,当您需要验证时,只需查询用户名和验证代码,然后将其与提供的一个用户进行比较。列
IsVerified
应为int(1),您可以将默认值设置为0。如果用户验证成功,请将其更改为1。

对不起!为什么只需要三个表来存储用户详细信息和验证代码,请使用一个表来存储这两个信息

您只需使用您设计的验证表即可