我的MySQL表中是否有太多列?

时间:2017-07-23 08:08:07

标签: mysql database database-design entity-attribute-value relational

我是一名初级医生,我正在为我的高级医生创建一个数据库系统。 基本上,我的高级医生希望能够在关系数据库中存储关于他的每个患者的大量信息,以便以后,他可以非常容易和快速地分析/审核数据(即基于某些人口统计,找到哪些治疗方法)导致更好的结果或哪些种族对某些治疗等有更好的反应等。)。

他想为每位病人存储的信息非常庞大。

每位患者要完成7次调查(每次只需1-2分钟)(手术前,手术前后,术后3个月,术后6个月,术后2年,术后5年) - 每次最后得分这些不同时期的调查将存储在数据库中。

此外,他希望存储相关的详细信息(姓名,种族,性别,年龄等)。

最后,他还打算存储大量相关的既往病史,目前的症状,检查结果,他们尝试的各种治疗方案,然后结果测量。

基本上,每位患者都有很多信息。所有这些信息对每位患者都是独一无二的。因此,我创建了一个包含(~400列)的巨大患者表来包含所有这些信息。我之所以这样做是因为表格中的大多数列对每位患者都不会是多余的。

此外,整个php / mysql数据库系统只能在他的计算机上本地生活,它永远不会在互联网上。

这些表格不会有太多患者,到年底可能会在200-300左右。

鉴于所有这一切,拥有如此庞大的桌子是否可以? 或者我应该将它拆分成更小的表格 即   - 患者人口统计学  - 调查结果   - 症状   - 治疗 等等,具有独特的" patient_id"是这些表之间的联系吗?

两种方法之间有什么区别,哪种更好?为什么呢?

1 个答案:

答案 0 :(得分:0)

关于400列...

哪些列(如果有的话)对搜索或排序很重要?可能只有极少数。将这几列保留为列。

你会对其他人做什么?可能你只是在某处显示它们,使用一些应用程序代码来打印它们?所以这些也可能是一个很大的JSON字符串。

这避免了EAV的噩梦,但是以一种实际上相当容易(和快速)使用的格式将数据存储在数据库中。

相关问题