SQL中行的继承

时间:2015-11-20 14:22:42

标签: sql ruby sequel

我有一个行表,这里是一个示例(作为哈希):

{:id => 8, :n => 774, :inherits_from => [], :properties => ["a", "b", "c"]}
{:id => 9, :n => 915, :inherits_from => [8], :properties => ["d"]}
{:id => 10, :n => 754, :inherits_from => [1, 2], :properties => []}
{:id => 11, :n => 774, :inherits_from => [10], :properties => ["a", "b"]}

我们的想法是可以从其他行继承属性:

table[:id => 9] #=> {:id => 9, :n => 915, :inherits_from => [8], :properties => ["a", "b", "c", "d"]}

行可以有一个或多个继承,或者可以没有。可以有许多级别的继承,即5继承自2和3,7继承自5(这意味着7继承自5,但也来自2和3,因为5继承自它们)等。 我知道我可以用蛮力(即,对于每个查询的行检查它是否从某个地方继承)。另外,我可以使用Class.new为每一行生成一个类并设置继承(我使用ruby),但是会有数千行。

有关如何以最有效的方式做到这一点的任何建议?

0 个答案:

没有答案