我是应用程序设计的新手,我正在尝试从设计和 future 可扩展性的角度进行思考。比方说,我们从三组人开始,他们互相写笔记更新。目前我的表格上的焦点部分有这样的列:
样本编号 |办公笔记 |实验室笔记 |账单注...
创建新条目时,我的 java 程序将此格式包含到每个 sampleId 以及它写入的任何注释类别中:
[MM/dd/yy HH:mm - user] userNote\r\n
现在,如果我想在我的 GUI 应用程序中生成一个概览表,以便任何团队都可以查看该注释并了解样本出现问题的原因。这个缩短的表格的格式类似于:
Header: Office Note
----------
Sample Id | Date Created | User | First Line | Last Updated Line
Header: Billing Note
-------------------
Sample Id | Date Created | User | First Line | Last Updated Line
Header: Lab Note
-------------------
Sample Id | Date Created | User | First Line | Last Updated Line
知道最终表的结果是怎样的......是否明智地为每个注释组创建更多列以支持“创建日期”和“用户”?或者我会在 mysql 或 java 中制作一个正则表达式来解析第一个创建日期和用户。
让我知道我还能为这个问题提供什么。是的,一旦注释被解决,行就会被删除。
最佳答案
将它分成几列会更清晰。在我看来,如果您总是需要解析它,则应避免使用始终具有相同结构的字段。好像是在否定关系型数据库的使用。
此外,我还没有对其进行测试,但很可能使用正则表达式的性能明显较低。
更重要的是,您可以使用索引。例如,如果您需要显示与某个用户相关的记录或从确定的时间间隔开始,那么如果您分别在 User
字段和 Date Created< 上建立索引,速度会快得多
.
最后,您将来可能需要进行复杂的查询,因此您必须直接在查询中使用正则表达式。这并不总是受支持!因此,您可能必须在您的 Java 代码中“完成”它,这很慢而且非常难看。即使您的数据库可以使用该功能,也不要忘记它会使它变得异常复杂和缓慢,因此它可能成为应用程序开发和维护的噩梦。
关于java - 什么更有效率?使用 Regex 或在 mysql 中创建新列以获取相同信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828520/