Php 注册登录数据库方案

Php 注册登录数据库方案,php,mysql,database,Php,Mysql,Database,以下是我想问的问题: 我想做一个系统来登记病人,这样他们就可以登录了。我有3种类型的用户 管理员(无需注册) 医生(标准医生人数,无需注册) 患者(他们将被登记) 我想为他们保留更多的信息,而不仅仅是id、用户名、密码和电子邮件。 我正在考虑使用多个表来执行此操作,并将它们与主键和外键链接: 1st table accounts (it will store the login data) Example: acc_id(primary key) acc_password acc_us

以下是我想问的问题:

我想做一个系统来登记病人,这样他们就可以登录了。我有3种类型的用户

  • 管理员(无需注册)
  • 医生(标准医生人数,无需注册)
  • 患者(他们将被登记)
  • 我想为他们保留更多的信息,而不仅仅是id、用户名、密码和电子邮件。 我正在考虑使用多个表来执行此操作,并将它们与主键和外键链接:

    1st table accounts (it will store the login data) Example: acc_id(primary key) acc_password acc_username acc_type 第一桌 帐户(它将存储登录数据) 例子: acc_id(主键) 密码 acc_用户名 acc_型 第二张桌子 医生额外信息 例子: acc_id(外键) 文档信息id(主键) 文件名 ... ... 第三张表 患者\额外\信息 例子: acc_id(外键) pat_info_id(主键) 姓 ... ... 第四桌 管理员信息 例子: acc_id(外键) 管理员id(主键) 管理员电子邮件
    • a。这样做的最佳方式是什么
    • b。在 注册时,如何处理主键和外键?二插入 两个不同表中的命令?[为了获得相同的acc_id 在account表和extra info表中]
    • c。在登录部分, 我需要检查用户类型和重定向(标题(位置:…);) 翻到一页?这样做对吗
    有什么建议吗?
    谢谢。

    如果您使用的是PHP,那么在插入记录时,您可以立即检索使用mysql\u insert\u ID()创建的ID。然后使用它创建其他记录作为外键

    关于重定向,我只需从数据库中获取用户类型,然后检查用户类型并重定向到所需页面

    通常情况下,尽管您创建的表没有正确关联。记住,使用系统的人的定义是他们是一个人,不应该被他们的工作角色所轻视。他们应该有一个帐户类型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上的一个非常好的视频是

    ,那么我有多少张桌子?因为我希望在每种类型的用户中都有不同的列。 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
    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