java - 如何将曲线存储到数据库
问题描述
我想问一下如何将曲线存储到数据库中。曲线对象由点数组表示。
我有两个选择:
1)创建两个表,一个用于曲线,一个用于点
- 它看起来像这样:
CURVE[id]
,POINT[id, x, y, order, curve_id]
- 我不确定这是否是最佳的,要从数据库中获取一条曲线,我需要加入表,并且在 POINT 表中会有很多点
2) 一条曲线 = 一张表中的一行
- 我会将所有数据存储在一个表中,例如:CURVE[id, data] where data could be in formate "[[1,2],[2,2],[3,4] ...]" ( string) 或 blob 或类似的东西。
你怎么看?还有其他选择吗?
解决方案
我建议将您的数据点存储在单独的行中,您只需要一个额外的索引来订购它们。
您可以使用GROUP_CONCAT()
函数重新创建您建议的字符串。
您的表将具有以下结构:
- 曲线ID
- point_id
- x_coord
- y_coord
查询看起来像:
--- {[1,2], [2,3] ...}
SELECT GROUP_CONCAT(CONCAT_WS("[", x_coord, ",", y_coord, "]"))
FROM table
WHERE curve_id ORDER BY point_id
推荐阅读
- javascript - 表单验证不适用于 mui react using mui-places-autocomplete
- c++ - 如何添加或减去数组的一部分?
- javascript - 如何在javascript中计算变量并在html页面中打印它们
- firebase - 如何通过云功能访问实时数据库的深层价值?
- javascript - 如何将两种材质添加到已经在画布上渲染的网格中
- npm-install - 为什么会这样?谁能给我答案
- string - 从几个下拉列表中创建一个组合文件名
- mysql - 直接在 MYSQL 中建立左表和右表之间的关系是一种好习惯吗?
- sqlite - SQLite - 根据修改日期合并 2 个表,必要时插入新行
- php - 尝试在 php CRUD 应用程序中执行准备好的语句失败