是否可以在SQL中创建具有以下要求的表。
我有一个带有两个cols的表X,(主键,值)
每次我在上面的表中添加一个新值,我创建一个名为value的新表。
因此,如果表X中有10行,那么我们需要在值字段中有10个表名。
让我试着解释一下情况。 我有一个A类,我需要定义它。 A的子集可以包括{a1,a2,a3,.....直到无穷大}
所有子集都有不同的定义,但唯一标识为属性B.
B可以直接为A,也可以是定义为true的子集A.我不知道如何设计它。我正在使用postgresql
所以我从a_horse_with_no_name中获取提示并认为这可以是表结构。
Table A
<table border="1">
<td> primary_key </td>
<td> B1 </td>
<td> B2 </td>
<td> hstore - attribute </td>
</table>
&#13;
现在哪个商店的行为应该与树类似。
hstore - attribute - &gt; {a1:{c1,c2,c3 ...},a2:{d1,d2,d3 ..},....}
C和D是具有多个或单个值的结构。因此,如果我要使用hstore,是否可以使用像2d数组或类似的东西。似乎可以从以下链接。
http://www.postgresql.org/docs/9.0/static/hstore.html
我认为这肯定是一种更好的方法。你能检查一下吗? 等等..
答案 0 :(得分:1)
不,你不能这样做。不应该。
编辑:所以,如果你想要一个超级集的子集,其中所有项都相似,你应该创建一个名为'parent_id'的列,并引用该列中的超集。
答案 1 :(得分:0)
听起来不错,但是,你可以做到。根据您使用的SQL,可能需要有点创造性。您很可能必须创建一个存储过程,该过程创建一个带有名称参数的新表。然后,您可以在插入时创建一个触发器来调用存储过程,因此每次插入新值时都会创建一个表。
答案 2 :(得分:0)
这种做法对我不好。我认为你应该尝试另一种方式来解决你的问题。