gpt4 book ai didi

mysql - 为每个特定用户创建 MySQL 表,还是概括这些表?

转载 作者:行者123 更新时间:2023-11-29 21:34:38 26 4
gpt4 key购买 nike

在规划我的数据库时,我遇到了各种各样的思维问题:大纲:该数据库是一个拥有大量患者的患者数据库。每个患者都有大量数据,例如:不同日期的血压值

问题:

  1. 为每个患者创建表格会更容易吗?“bob_builder_BPvalues”或为 BP 值创建一张表,例如。 “BP_values”,然后通过外键链接其中的所有患者值?

  2. 由于每个患者都有如此多的数据,因此将每个患者的血压值混合到一个表中似乎没有意义,因为这对人类来说看起来非常困惑。哪种方法在处理和排序数据方面速度更快?

最佳答案

假设您有 10 名患者:

使用第一种方法,您最终会得到 10 个始终包含相同类型数据的不同表。

对于单个患者的每个查询,您必须构建一个连接到正确表的动态查询:

SELECT ...
FROM patients
INNER JOIN bobby_measures ON ... -- this has to be crafted dynamically each time
WHERE patients.name = 'bobby'

如果您想对所有患者的一系列日期的某种数据进行一些统计,该怎么办?即使有 10 名患者,对此进行查询也会成为一场噩梦。那么猜猜当你有 1000 时会发生什么......

另一方面,您的第二个选择(可以说)使人类读取数据库变得更加困难。但被人类阅读并不是数据库的目标之一。

使用单个患者数据表(或任意数量的表,如果需要,每种数据类型一个,血压等),一切都会变得更简单。您可以使用相同的查询来查询任何患者,仅更改患者 ID,您可以对某个日期范围进行所有所需的查询,过滤某些数据类型,等等。

SELECT ...
FROM patients
INNER JOIN patientData ON ...
WHERE patients.name in ('bobby', 'joe'...)
AND patientData.type = 'blood pressure'
AND patientData.date BETWEEN ... AND ...
-- and so on

在患者数据表上使用正确的索引和适当的表示层,所有这些数据都可以被普通用户完全读取。

关于mysql - 为每个特定用户创建 MySQL 表,还是概括这些表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35017146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com