MYSQL:我应该为2种类型的用户使用2个表,这些用户具有共同和不同的字段吗?

时间:2012-11-02 13:36:47

标签: mysql database-design

我有两种类型的用户 员工 2.员工朋友。

两个用户都有共同的字段。
1.名字
2.中间名
3.姓氏 4.手机号码
5.电话号码
6.城市地址
7.email(作为登录)
8.password
9.注册日期
10.更新帐户日期

并且员工朋友用户没有此字段
1.employee id
2.公司名称。
公司分支
4.position

他们将使用相同的登录表单。

3 个答案:

答案 0 :(得分:1)

编辑版(感谢nawfal和Patrick James McDougle)

第一个表(用户)应该包含字段1-10(第一个列表)和一个新字段fk_employees(第二个表的外键, null ,如果它是employees_friend)

第二个表(员工)应包含字段1-4(第二个列表)

答案 1 :(得分:0)

我认为这与我对面向对象编程的思考方式相同。如果员工EXTENDS用户,则员工应该是具有额外信息的用户。我会有两张桌子。

Users(包含可能添加id字段的公共字段) &安培; Employees(员工的4个额外字段和引用users表中唯一标识符的一个字段。)

有关我提议的内容的更多信息,请访问:http://www.agiledata.org/essays/mappingObjects.html#MappingInheritance

答案 2 :(得分:0)

我建议使用上述字段创建2个单独的表作为user和user_friends。

现在使用以下查询创建视图:

select employeeID,email,password from users
union
select friendID,email,password from user_friends

查询此视图以获取应用程序中的登录信息。