【问题标题】:Need help in designing the msyql database for a hospital management sytem在为医院管理系统设计 mysql 数据库时需要帮助
【发布时间】:2012-11-08 04:07:48
【问题描述】:

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

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

这里会有最关心的医院和病人。 我应该如何在 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);

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

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

【问题讨论】:

  • 除非您所在的国家/地区恰好是皮特凯恩群岛,否则您可能应该考虑聘请具有类似项目经验的专业人员来处理具有如此敏感性和重要性的应用程序。
  • 不要忘记,根据您所在的国家/地区,有一些关于如何存储患者数据的规定。

标签: mysql database-design


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

【讨论】:

  • 拥有大表并非闻所未闻 - 我见过一个有 200 万条记录的 Oracle 表,而在单个数据库实例中很少有这样的表。设计对于获取快速数据至关重要。正如@elrado 提到的,触发器应该有助于审计任务但我很好奇 - 界面似乎是基于 Web 的面板。如果您在托管环境中使用它,还请与托管服务提供商核实对 DB 的限制
  • 3.示例性 - M,F,T 就可以了。你不需要6个字符。那是一个。类似地检查所有表中的其他字段。______ 4. 当您有出生日期时,年龄是可计算的。不要重复。这又是功能和技术决策的混合_______ 5. 在屏幕截图中,“NULL”垂直显示所有 NO。这很可能意味着所有字段都是必填的。您是否认真期望为每位患者提供宗教和部落?请检查基本要求。如果没有良好的需求文档,您的系统将无处可去
  • 我还有一个建议:聘请优秀的数据库专家来设计系统。
  • 在第 5 点的情况下,即使我将 NULL 设置为非强制字段的默认值,我的插入查询也会删除 NULL 的东西。在这种情况下我会怎么做?
  • 检查我用来将记录插入数据库表的 sql 查询,这个查询不会删除表中的 NULL 值吗?在这种情况下,我将如何保留 NULL 值?
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2010-11-11
    • 1970-01-01
    • 2011-05-14
    • 2012-05-19
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    相关资源
    最近更新 更多