我试图找到一个很好的方法来将这些点存储在数据库中.
我认为好的几种方式首先是文本类型,然后使用分隔符来对点进行分配,这样在db中看起来就像这样
+----------------------------+
| x_points | 1:2:3:4:5... |
| y_points | 1:2:3:4:5... |
+----------------------------+
Run Code Online (Sandbox Code Playgroud)
然后,Web应用程序将拉出点并将它们绘制在画布上.
有没有更好的方法将点存储到数据库中的一行?
对于复杂的函数,每个图形的点数可以是1000个点,然后是每个点的分界符,因此可以加载一组字符.
由于这些评论,我将尝试详细说明.我正在使用画布来绘制用户输入的函数.用户也可以在图表上绘图,我想存储图纸的线条数据以及我认为可以以相同的方式存储,并且点的计算只需要发生一次.
用户可以绘制y = x ^ 2的样本,然后圈出y截距.然后他们可以链接到那个画布,它会重绘他们的y截距和图形的圆圈.当然这是一个简单的例子,但我无法弄清楚如何最好地在画布上存储点.
希望这会有所帮助.
这称为一对多关系.你有一个形状和许多实际点.您通常希望将这些点放入单独的表中,就像这样.
+----------------------+ +-----------------+
| Shape | | Point_Values |
+----------------------+ +-----------------+
| shape_id (INT) | | shape_id (INT) |
| shape_name (VARCHAR) | | point_x (INT) |
+----------------------+ | point_y (INT) |
+-----------------+
Run Code Online (Sandbox Code Playgroud)
要创建新形状,请在Shape表格中插入新形状.然后在Point_Values表中创建一个或多个值.当您想要返回并获取值时,您将使用连接,如下所示:
SELECT s.shape_name, v.point_x, v.point_y
FROM Shape s
JOIN Point_Values v ON s.shape_id = v.shape_id
WHERE s.shape_id = 5
Run Code Online (Sandbox Code Playgroud)
这具有非常灵活的优点.每个形状可以有0个或更多个点,并且隐含强制执行必须有相同数量的x和y点.
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |