以下是我想问的问题:
我想建立一个系统来注册患者,然后他们就可以登录了。我有3种类型的用户。
我想为他们保留更多信息,而不仅仅是ID,用户名,密码,电子邮件。 我想有多个表来执行此操作并将它们与主键和外键相关联:
1st table accounts (it will store the login data) Example: acc_id(primary key) acc_password acc_username acc_type
2nd table doctors_extra_info Example: acc_id (foreign key) doc_info_id (primary key) doc_name ... ...
3rd table patients_extra_info Example: acc_id (foreign key) pat_info_id (primary key) pat_name ... ...
4th table admin_info Example: acc_id (foreign key) admin_id (primary key) admin_email
有什么建议吗? 谢谢。
答案 0 :(得分:0)
如果您正在使用PHP,那么当您插入记录时,您可以立即检索使用mysql_insert_id()创建的ID。然后使用它来创建其他记录作为外键。
关于重定向,我只需从数据库中获取用户类型,然后检查用户类型并重定向到所需页面。
通常,虽然您创建的表格没有正确关联。请记住,使用该系统的人的定义是他们是一个人,不应该被他们的工作角色所左右。他们应该有一个account_type_id链接到另一个表。否则,您有三个表基本上保存相同的信息。
例如,你应该有这样的表
User table
user_id
first_name
last_name
email
account_type_id*
Accounts type table
user_id
account_type_id*
account_type //e.g. patient, doctor, admin etc
这意味着您现在可以使用新表,用户访问级别,新列轻松扩展数据库,而无需在三个表中复制相同的列,依此类推。尝试阅读数据库规范化。来自youtube的非常好的视频是http://www.youtube.com/watch?v=fg7r3DgS3rA