【问题标题】:Merging two tables in one database将两个表合并到一个数据库中
【发布时间】:2018-06-23 23:51:35
【问题描述】:

我制作了这个员工信息系统,员工可以在其中提供自己的反馈。这是它的样子:

EIS

当您点击“员工反馈”按钮时,它会将您重定向到此页面:

Employee Feedback Form

现在我的数据库中有 2 个表,employee 和 tbl_feedback:

DB tables

问题在于不同的 ID。如何将两者合并?

对于员工表:

employee table

对于 tbl_feedback:

tbl_feedback

我希望在用户点击“员工反馈”时自动显示全名。我认为只有合并这两个表才有可能。

我不知道你们需要什么源代码,但请告诉我,我会提供。非常感谢!

【问题讨论】:

  • 欢迎来到 SO。请访问help centre 以查看how to ask a good question。如果您不提供任何代码,我们将无法为您提供帮助 - 请参阅如何创建 minimal reproducible example
  • 如果员工永远只能做出一条反馈评论,那么是的,您只需要一张桌子。但这听起来不现实。您可能希望您的反馈表根据员工的唯一 ID 与您的员工表建立外键关系。然后员工可以随着时间的推移留下很多反馈,您可以轻松地将其与员工联系起来。这是正常的关系数据库设计,我建议你阅读一下,我想你还没有理解这个概念。
  • @ADyson 这正是我想要发生的事情,但是如何将对象从一张表合并到另一张表?
  • 首先自己决定,你想把逻辑写在哪里,存储过程还是服务器端程序?为了回答您的问题,两个表中都需要有一些共同点,以便您可以合并它。我想你可以使用电子邮件字段。
  • 与此同时,您的表格结构并没有特别阻止您在屏幕上显示员工的姓名(注意显示,他们不需要重新输入,或者甚至被允许作为该表单的一部分,它应该是只读的)。您只需将员工 ID 传递给反馈页面的查询字符串,并使用它从数据库中获取正确的员工记录,并使用来自它的名称。然后,您还可以在隐藏字段中使用该 ID 将表单中的记录与正确的员工相关联 - 您将在表单提交后取回。

标签: php html mysql sql phpmyadmin


【解决方案1】:

请看一下@Pete 的好建议,因为这将有助于我们为您提供帮助。

这里只是关于如何使用主键和外键链接表的提示:

create table employee
(
    id         integer,
    fullname   varchar(64),
    username   varchar(32),
    email      varchar(128),
    address    varchar(512),
    contact    varchar(16),
    gender     varchar(16),
    password   varchar(32),
    constraint primary_key_employee primary key (id)
);


create table feedback
(
    id           integer,
    employee_id  integer,
    website      varchar(128),
    message      varchar(2048),
    constraint primary_key_feedback primary key (id),
    constraint foreign_key_feedback_employee foreign key (employee_id) references employee (id)
);

select 
    a.fullname,
    a.email,
    b.website,
    b.message
from
    employee a
    join 
    feedback b
    on a.id = b.employee_id;

您可以在表格中改进很多方面(例如,没有明确的密码)。这不是刻薄的意思,你显然是在开始,并考虑你需要什么,这很好。我建议您花一点时间来了解 SQL 数据库的工作原理。 https://www.w3schools.com/sql/default.asp 有一个免费资源。我试图提供实用的解释,你可以找到here,还有很多其他资源。

希望你一切顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多