【发布时间】:2013-10-17 08:30:02
【问题描述】:
我有不同类型的测量值。它们彼此不相关。假设A、B 和C。它们三个都有相同的结构,ID (integer)、value (float)、experiment_id (integer)(与实验表有关)。
我不知道存储此信息的最佳方式。
A) 使用三个表(A、B 和 C)会更好吗?
B) 或者最好将它们全部存储在一个名为measurements 的表中,并添加一个名为measurement_type 的附加列来存储A、B 或C 的信息(包括索引)。
在我的应用程序中,我想要三个模型,分别称为 A、B 和 C。
解决方案应该很快,因为对于每种测量类型,一天可能有数亿甚至十亿个条目。此外,有一天可能会有测量类型D、E、...、Z。
顺便说一下,我使用的是 Oracle Enterprise 数据库。
【问题讨论】:
-
您打算如何查询数据?另外,
ID有什么内在含义吗?例如,它是否需要在跨越A、B和C之间保持唯一?它是否必须与进行测量的顺序相对应?另外,所有测量值都是float吗? -
@BrankoDimitrijevic
ID没什么特别的。最好的事情是忽略它:-)。顺序并不重要。所有测量值都是float。 -
如何区分恰好具有相同
value的两个测量值?请回答我的另一个问题:您打算如何查询数据? -
我不仅与实验有关。完整的结构包括
experiment_id和feature_id。实验和特征的结合是独一无二的。在一个实验中,许多特征都有各自的值。一个值可能出现不止一次。我将查询属于一个实验的所有值。或属于一个特征的所有值(多次实验)。
标签: ruby-on-rails database-design polymorphic-associations single-table-inheritance