Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Database design 电子邮件属于用户-使用电子邮件作为用户名Cakephp 2.0.5_Database Design_Cakephp_Cakephp 2.0 - Fatal编程技术网

Database design 电子邮件属于用户-使用电子邮件作为用户名Cakephp 2.0.5

Database design 电子邮件属于用户-使用电子邮件作为用户名Cakephp 2.0.5,database-design,cakephp,cakephp-2.0,Database Design,Cakephp,Cakephp 2.0,我有一个电子邮件地址表和一个用户表。我使用用户的电子邮件地址作为他们的用户名。因此,用户表类似于: email_address_id password email_address_id字段将在email_addresses表中找到用户名作为登录信息的电子邮件 我知道我可以使用auth组件将username字段更改为其他名称,如email_address,但是如何使用其他表中的字段作为用户名 现在我必须在email表和user表中插入email,这看起来是非常糟糕的数据库设计 任何帮助都将不胜感

我有一个电子邮件地址表和一个用户表。我使用用户的电子邮件地址作为他们的用户名。因此,用户表类似于:

email_address_id
password
email_address_id字段将在email_addresses表中找到用户名作为登录信息的电子邮件

我知道我可以使用auth组件将username字段更改为其他名称,如email_address,但是如何使用其他表中的字段作为用户名

现在我必须在email表和user表中插入email,这看起来是非常糟糕的数据库设计

任何帮助都将不胜感激


我正在使用CakePHP 2.0.5

您真的需要这样做吗?把属于你的东西放在一起很好

我会将电子邮件保存在用户模型中以进行身份验证

如果你想要的话,在以后的电子邮件中使用电子邮件地址

编辑:


现在,如果一些人被授予访问权限,而另一些人没有,我会在用户模型中添加一个字段,类似于has_access int(1)或任何与您相关的内容,并在登录时检查其值。

我同意。。你们的关系也有些可疑之处。请看,带有外键的表属于另一个表。所以,当你说“电子邮件属于用户”时,你真正的意思是“用户属于电子邮件”。这本质上意味着“电子邮件有多个用户”或“电子邮件有一个用户”。你真的打算将一个电子邮件地址关联到多个用户帐户吗?此外,如果这是一个hasOne(1:1关系),那么为什么要添加额外的表呢?我有其他人的电子邮件地址,而不是那些将登录数据库的人。例如,它是这样工作的:Person有一个EmailAddress-EmailAddress belongsTo Person。然后,其中一些“人”也将被允许登录。他们的电子邮件地址(已存在于“电子邮件地址”表中)将成为他们的用户名。因此,我必须将他们的电子邮件地址插入到新表中。这不是一个多关系,每个用户只有一封电子邮件,我只是不认为添加数据库中其他地方已经存在的数据有什么意义。事实上,我对当前使用的表的看法是错误的,尽管我认为这不会改变任何事。我将电子邮件地址作为人员表中的一个字段。所以每个人只有一个地址,然后我想这个人可能会用persons表中的email字段作为用户名登录。如果我没有使用Cake,我觉得这是设计数据库的最好方法。我不能把电子邮件只放在用户表中,因为不是所有人都是用户。为什么要复制数据?我看不出有什么好处。