关于我之前提出的一些数据库建议的问题;它只是发生在我身上,我甚至不知道我想要存储的是否适合数据库。或者应该使用其他一些数据存储方法。
我有一些物理模型测试(让我们说风洞数据;类似的东西)我所拥有的每个型号(M-1234):
name (M-1234)
length L
breadth B
height H
L/B ratio
L/H ratio
...
lot of other ratios and dimensions ...
force versus speed curve given in the form of a lot of points for x-y plotting
...
few other similar curves (all of them of type x-y).
现在,我想要完成的是以合理的方式存储,以便将使用数据库的用户可以看到最接近的十个模型到L / B = 2.5(或类似的需求)。然后,为此,以某种方式获取这些模型的所有数据,包括曲线数据(以纯文本文件格式)。
是一个sql数据库(或任何其他的,就此而言)处理这样的事情的适当方式?或者我应该采取其他方法吗?
我有大约一个月的时间来完成这个,在那个时候我还要学习足够的数据库,所以......请提出你的建议,请记住这一点。以前没有任何关于这个主题的知识。
答案 0 :(得分:2)
我认为您正在寻找的是可能的。我在这里使用Postgresql,但任何数据库都应该工作。这是我的测试数据库
CREATE TABLE test (
id serial primary key,
ratio double precision
);
COPY test (id, ratio) FROM stdin;
1 0.29999999999999999
2 0.40000000000000002
3 0.59999999999999998
4 0.69999999999999996
.
然后,找到最接近特定比率的值
select id,ratio,abs(ratio-0.5) as score from test order by score asc limit 2;
在这种情况下,我正在寻找最接近0.5
的2我可能会做一个数据模型,你有一个表用于主数据,比率等等,然后是第二个表保存曲线点,因为我假设曲线并不总是相同的大小。
答案 1 :(得分:2)
是的,数据库可能是最好的方法。
关系数据库(通常使用SQL进行数据访问)适用于或多或少结构化为表的数据。
给你一个想法:
您可以使用包含字段model
,name
等的主表width
。然后是子表,用于任何可能出现多次的值,它返回model
(查找“外键”)。
然后是实际曲线的子表,再次引用回model
。
如何在DB中实际建模曲线我不知道,因为我不知道你是如何建模的。但如果有很多数字,它可以进入数据库。
您似乎对关系型DBMS知之甚少。考虑在WIkipedia上阅读一些东西,或者做一些简单的DBMS教程(PostgreSQL有一些:http://www.postgresql.org/docs/8.4/interactive/tutorial.html,但还有很多其他的)。然后选择一个DBMS进行试用(PostgreSQL可能不是一个糟糕的选择,但还有很多其他选择)。
然后尝试实现一个简单的表模式,并回答任何细节问题(你可能会有)。
还有一件事:这些问题可能更适合serverfault.com。
答案 2 :(得分:0)
这可以说是科学数据:您可能会发现用于任意科学数据的库/格式有用:HDF5 http://www.hdfgroup.org/(注意我不是专家)