2012-01-09 94 views
1

我有一个表email_addresses和一个表用户。我使用用户的电子邮件地址作为他们的用户名。因此,用户表是这样的:电子邮件属于用户 - 使用电子邮件作为用户名Cakephp 2.0.5

email_address_id 
password 

的email_address_id场也只是发现在EMAIL_ADDRESSES表中的电子邮件的用户名作为登录信息。

我知道我可以将用户名字段更改为email_address与auth组件另一个名称,但我如何使用不同表中的字段作为用户名?

现在我必须在电子邮件表和用户表中插入电子邮件,这似乎是非常糟糕的数据库设计。

任何帮助,将不胜感激!

我正在使用CakePHP 2.0.5

回答

2

你真的需要这样做吗?将所有属于一起的东西放在一起很好。

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

使用email_addresses为后续电子邮件,如果这是你想要的。

编辑:

现在,如果有人被授​​权访问和其他没有,我想添加一个字段在用户模型,像has_access INT(1)或任何对你说话,并检查它的值在登录。

+0

我同意..还有一些可疑的关系。查看[此图](http://mboffin.com/stuff/ruby-on-rails-data-relationships.png),带有外键*的表属于另一个表。所以你说“电子邮件属于用户”,你的意思是“用户属于电子邮件”。这本质上意味着“电子邮件拥有许多用户”或“电子邮件拥有一个用户”。你真的打算将一个电子邮件地址与许多用户帐户关联吗?另外,如果这是一个hasOne(1:1关系),那么为什么多余的表? – deizel 2012-01-09 17:25:58

+0

好吧,我有除了那些登录数据库的人以外的其他人的电子邮件地址。例如,它的工作原理如下:人员有一个EmailAddress - EmailAddress belongsTo Person。然后,其中一些“人员”也将被允许登录。他们的电子邮件地址已经存在于表email_addresses中,将成为他们的用户名。所以我将不得不将他们的email_address插入到一个新表中。这不是一个hasMany关系,每个用户只有一封电子邮件,我只是没有看到添加数据库中已存在的数据的关键点。 – 2012-01-09 18:08:16

+0

其实我错了我目前使用的表格,虽然我不认为它会改变任何东西。我将电子邮件地址作为人员表中的一个字段。因此,每个人只有一个地址,然后我想这个人可能会使用users表中的电子邮件字段作为他们的用户名登录。如果我不使用Cake,我觉得这是设计数据库的最佳方式。我不能只在用户表中收到电子邮件,因为并非所有人都是用户。为什么重复数据?我没有看到好处。 – 2012-01-09 18:21:15

相关问题