我必须决定为我的应用程序设计数据库。到目前为止,我有用于存储这些字段的Users表:
**USERS**
RecID - auto increment
UserID - unique id (Primary key)
UserName
Password
Salt
TempPassword
FirstName
LastName
Email
SystemAdmin
QuestionID
Answer
Active
CreateDate
CreateUID
此表存储有关用户的所有信息。应用程序中有另一个名为Staff的部分。根据他们希望在表格中看到的规格
**STAFF**
First name
Last name
Middle Initial
Position
Email
Comments
正如您所见,员工在“用户”表中已存在一些字段,如“姓氏”,“姓氏”和“电子邮件”。最重要的是员工记录不一定是用户。换句话说,员工记录永远不会登录系统,他们不需要所有用户信息/字段,但用户可能是员工。出于这个原因,我不知道该走哪条路。我应该为员工创建另一张桌子吗?这将导致一些冗余数据,因为员工的记录可能已经是Users表中的记录。同时我想保留在Users表中没有登录信息的员工记录。有两个单独的表将保持数据库清洁但多余。对于这种情况,最好的方法是什么?此外,我正在考虑将来的效率和查询数据。如果有人能提供一些有用的建议或例子。提前谢谢。
答案 0 :(得分:2)
或创建第三个表:Contact
,其中包含常规联系信息:
Contact
--------------
Id <-- primary key - links to ContactId in linked tables
FirstName
LastName
Email
ContactTypeId -- perhaps to enable identification?
etc...
然后链接到员工和用户的联系人表格:
Staff
-----------
Id
ContactId <-- foriegn key
Position
etc...
Users
------------
Id
ContactId <-- foriegn key
Username
Password
etc....
然后将联系人信息集中存储在同一个表中,并链接到需要存储联系人类型数据的任何表。