我试图找出一种很好的方法来将这些点存储在数据库中。
我认为好的两种方法是首先使用文本类型,然后使用分隔符将这些点进行精化,以便在db中显示如下所示。
+----------------------------+
| x_points | 1:2:3:4:5... |
| y_points | 1:2:3:4:5... |
+----------------------------+然后,这个网络应用程序会把这些点拉出来,然后在画布上画出来。
是否有更好的方法将点存储到db中的行?
对于复杂的函数,每个图的点可以是1000个点,然后每个点都有一个分隔符,这样就可以装载大量的字符。
由于这些评论,我将尝试更详细地阐述。我使用画布绘制用户输入的函数。用户也可以在图形上进行绘图,我也想存储绘图的线条数据,我认为两者都可以以相同的方式存储,而点的计算只需要进行一次。
一个示例感应器将是一个用户可以绘制y=x^2,然后圆圈的y截距。然后他们就可以连接到画布上,然后重新绘制y截距和图形的圆圈。当然,这是一个简单的例子,但我不知道如何最好地存储画布上的点。
希望这能帮上更多忙。
发布于 2011-04-10 00:12:18
这被称为一对多的关系。你有一个形状和许多实际点。你通常会想把这些点放在一个单独的表中,就像这样。
+----------------------+ +-----------------+
| Shape | | Point_Values |
+----------------------+ +-----------------+
| shape_id (INT) | | shape_id (INT) |
| shape_name (VARCHAR) | | point_x (INT) |
+----------------------+ | point_y (INT) |
+-----------------+若要创建新形状,请将新形状插入到Shape表中。然后在Point_Values表中创建一个或多个值。当您想返回并获取值时,可以使用一个join,如下所示:
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这具有非常灵活的优点。每个形状都可以有0或多个点,并且有一个隐式强制执行,即必须有相同数量的x和y点。
https://stackoverflow.com/questions/5608779
复制相似问题