0

我正在开发一个国家级的医院管理应用程序,即我国的所有医院都将使用它。

所以我需要知道我应该如何设计数据库。

这里会有最关心的医院和病人。我应该如何在 mysql 数据库中拥有这两个东西。我的意思是说,将所有医院的患者放在一张表中,将医院的患者放在另一张表中,并通过外键将它们链接起来是否很好。

检查下面的这些图片 医院表

患者表

// Save Patient - Personal Details
$sql = "INSERT INTO ". TABLE_PATIENTS_PERSONAL ."";
$sql .= "(hospital_id, title, first_name, middle_name, last_name, date_of_birth, age, sex, occupation, marital_status, religion, tribe, preferred_language, datecreated, datemodified) VALUES";
$sql .= "($hospital_id, '$title', '$first_name', '$middle_name', '$last_name', '$date_of_birth', $age, '$sex', '$occupation', '$marital_status', '$religion', '$tribe', '$preferred_language', now(), now())";
$query = $mysql->query($sql);

到目前为止,我已经这样做了,但我担心一旦记录数量增加,我将面临什么问题。

应用程序上线后,患者表应以百万计。所以我需要关于它应该如何设计的建议,这样就不会有处理大量记录和其他常见数据库问题等的问题?

4

2 回答 2

0
  1. 所有必需的索引都必须到位
  2. 回到 RDBMS 的规范化和反规范化概念,以确定什么级别的规范化会有所帮助。
  3. 确保您有足够的字段大小 - 我看到某些字段太长而某些字段太短
  4. 不要有多余的字段(例如 - 年龄和出生日期)
  5. 许多字段可能为空。检查否则您的第一条记录本身将失败
  6. 其他问题与 DBA 相关,例如 DB 大小、功能等。请咨询您的 DBA
于 2012-11-01T12:44:22.273 回答
0

对于任何好的关系数据库系统,我几乎没有使用 mysql 的经验,几百万条记录应该不是问题。

一张表中的患者和另一张表中的 hostipals 对我来说看起来不错,但是您还需要存档表来监视数据库中的任何更改,并且这些表会变得非常大。我会用触发器来做,并在每条记录上存储每一个更改(但我对 Oracle 很有经验,而且我习惯于非常大的表)。

还要确保用于搜索的字段不能为空(在 Oracle 中,索引不用于空值)。

于 2012-11-01T12:47:10.090 回答