【问题标题】:Online Admissions System网上招生系统
【发布时间】:2013-08-12 21:06:28
【问题描述】:

我正在使用 mysql 和 php 开发在线招生系统。

我需要保存申请人的个人信息和学术信息。到目前为止,我已经创建了一个表来保存个人详细信息,其中申请人 ID(自动增量)作为主键。但是对于学术细节,我有点困惑。学术详细信息所需的字段是:

Degree Level (like Master, Bachelor, high school);
Roll No;
Subjects; 
Grade;
Institution;
Percentage;
Degree image (image field to save scanned copies of transcripts).

我不知道如何关联这两个表。上传图片文件(成绩单的扫描副本)会影响数据库性能吗?

【问题讨论】:

  • 一般规则:永远不要在数据库中存储文件。很少有用例可以证明这一点,而且有太多的陷阱/问题使这几个案例值得。
  • 不要将图像存储在数据库中,存储对它们的引用。您还应该非常小心地存储个人信息,它应该始终被加密。
  • 将申请人 ID 作为外键放入 Academic Details 表中。
  • 这些是用户可以看到的字段。您需要一个额外的字段来关联两个表。学术详细信息中的字段应指向包含申请人数据的表的主键。但我认为除了这个提示之外,你还真的需要一门关于数据库的基础课程。

标签: php mysql relationships


【解决方案1】:

你会有两张桌子

申请人

Id | Name | Address | etc, etc

学术详情

Id | ApplicantId | Degree | RollNo | DegreeImageUrl | etc, etc

列出所有申请人

SELECT * FROM Applicants

按姓名搜索特定申请人。

SELECT * FROM Applicants WHERE name = 'Tom Jones'

要选择 Id=1 的申请人及其所有学术详细信息,请使用联接

SELECT * FROM Applicants JOIN AcademicDetails ON AcademicDetails.ApplicantId=Applicants.Id
 WHERE Applicants.Id = 1

【讨论】:

    【解决方案2】:

    您可以有一个单独的表,其结构类似于以下内容,其中包含您需要的所有各种类型的图像:

    documents
    --------------------
    | id, INT AUTOINCREMENT
    | applicant_id, INT
    | type, VARCHAR(255)
    | url, VARCHAR(255)
    --------------------
    

    applicant_id 指的是文档所属的申请人。 type 字段可以是 degreetranscript 或您支持的任何其他类型的文档之一。最后,url 字段将包含图像的位置。最好有一个 PHP 表单,将图像上传到服务器上的目录,然后将记录添加到与用户刚刚上传的内容相关的 documents 表中。

    【讨论】:

    • 谢谢大家的回答。它对我帮助很大
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2022-01-23
    • 2017-12-27
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多