首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最佳MySQL数据类型

最佳MySQL数据类型
EN

Stack Overflow用户
提问于 2011-04-10 00:00:57
回答 1查看 184关注 0票数 0

我试图找出一种很好的方法来将这些点存储在数据库中。

我认为好的两种方法是首先使用文本类型,然后使用分隔符将这些点进行精化,以便在db中显示如下所示。

代码语言:javascript
复制
+----------------------------+
| x_points    | 1:2:3:4:5... |
| y_points    | 1:2:3:4:5... |
+----------------------------+

然后,这个网络应用程序会把这些点拉出来,然后在画布上画出来。

是否有更好的方法将点存储到db中的行?

对于复杂的函数,每个图的点可以是1000个点,然后每个点都有一个分隔符,这样就可以装载大量的字符。

由于这些评论,我将尝试更详细地阐述。我使用画布绘制用户输入的函数。用户也可以在图形上进行绘图,我也想存储绘图的线条数据,我认为两者都可以以相同的方式存储,而点的计算只需要进行一次。

一个示例感应器将是一个用户可以绘制y=x^2,然后圆圈的y截距。然后他们就可以连接到画布上,然后重新绘制y截距和图形的圆圈。当然,这是一个简单的例子,但我不知道如何最好地存储画布上的点。

希望这能帮上更多忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-10 00:12:18

这被称为一对多的关系。你有一个形状和许多实际点。你通常会想把这些点放在一个单独的表中,就像这样。

代码语言:javascript
复制
+----------------------+      +-----------------+
|        Shape         |      |  Point_Values   |
+----------------------+      +-----------------+
| shape_id (INT)       |      | shape_id (INT)  |
| shape_name (VARCHAR) |      | point_x (INT)   |
+----------------------+      | point_y (INT)   |
                              +-----------------+

若要创建新形状,请将新形状插入到Shape表中。然后在Point_Values表中创建一个或多个值。当您想返回并获取值时,可以使用一个join,如下所示:

代码语言:javascript
复制
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点。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5608779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档