【发布时间】:2020-12-06 03:04:00
【问题描述】:
我想充分利用 MySQL 来开发我为脊医开发的(网络)应用程序。
到目前为止,我 [每年] 都将所谓的进度笔记存储在一行中。表结构看起来像这样(progress_note_id、patient_id、date (Y-0-0)、progress_note)。当客户希望添加当前进度注释的年份时,他只需单击我使用 TinyMCE JavaScript 库的文本区域 (html) 的顶部,以创建新的输入日期以及速记注释。列的开头 (progress_note)。到目前为止,它工作正常,如果有 900 多个客户(估计),那么自申请开始(2018 年)以来每年可能有 1300 多个进度说明。
现在客户希望能够看到以前的进度笔记(历史),但无法修改任何以前的笔记,但仍然能够编写新的笔记。我想出的解决方案是在 textarea 中使用 XML,并使用 PHP 从旧注释中破译新注释。
但是,我的问题是,如果我必须将整个表格从一年转换为一天,那么将多个笔记转换为每一行可能会占用大量时间和精力,(估计 10 倍)这可能最终有 13,000 多行。我意识到,无论我选择哪种方法,都会有很多工作要做。我可能发现的另一种解决方法是在 MySQL 中使用 XML 列类型来潜在地存储多条记录,如果我想附加它,我只需要 PHP 来解释整个 XML 并在开头添加一个新的子节点.每个进度说明为 255 - 500 个字符。而在最坏的情况下,如果患者一年要 52 次(每周 1 次),那么开销应该不够大。
这是解决此问题的正确方法吗?我确实希望继续使用 MySQL DB,并且我意识到 MySQL 不适合 XML。澄清一下,我希望完成的事情与我打算对当前进度说明做的事情相同,但使用 XML。我相信升序(新 -> 最旧)。
<xml_result>
<progress_note>
<date>2020-08-16</date>
<content></content>
</progress_note>
<xml_result>
感谢您的宝贵时间和任何建议。
【问题讨论】:
-
使用 XML 的好处是我可以创建一个临时文件。 MySQL 表并使用 XML 数据集中的内容填充它。因此,我可以搜索最后 3-5 个笔记,填充文本区域并使用 XML 将新笔记与旧笔记分开。
-
13000 是很小的行数。不要害怕。
-
我支持在一个表中包含 十亿 行的数据库。