需要帮助设计医院管理系统的mysql数据库

时间:2012-11-01 12:37:14

标签: mysql database-design

我正在国家层面开展医院管理申请,即我国的所有医院都将使用它。

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

这里最关心的是医院和病人。 我应该如何在mysql数据库中拥有这两个东西。我的意思是说,将一张桌子上的所有医院的病人和其他医院的病人都安排好,并用外键将他们联系起来。

检查以下图片 Hospital Table

Patients Table

// 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);

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

一旦应用程序上线,患者表应该是数百万。所以我需要提出关于如何设计理想的建议,以便不会出现处理大量记录和其他常见数据库问题等问题。

2 个答案:

答案 0 :(得分:0)

  1. 所有必需的索引必须到位
  2. 回到RDBMS规范化概念&去标准化以决定什么级别的标准化将有所帮助。
  3. 确保您有足够的字段大小 - 我发现某些字段太长且确实太短
  4. 没有冗余字段(例如 - 年龄和DOB)
  5. 许多字段可以为null。检查否则您的第一张唱片本身将失败
  6. 其他问题与DBA相关,如DB大小调整,功能等。请与您的DBA联系

答案 1 :(得分:0)

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

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

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