我有两个表:foos
and bars
,并且它们之间存在多对一的关系:每个表foo
可以有很多bars
. 我还有一个 view foobars
,它连接了这两个表(它的查询就像select foo.*, bar.id from foos, bars where bar.foo_id=foo.id
)。
foo
编辑:如果您说s 和s之间存在多对多关系,那您就不会错bar
。然而, Abar
只是一个标签(实际上,它是一个大小),并且只包含它的名称。该表bars
具有与链接表相同的作用。
我有一个关于插入的规则,foobars
即“foo”部分foos
作为新行插入,“bar”部分由几个用逗号分隔的 bar-id 组成,每个这样的部分都有一个链接在它和适当的之间foo
创建(我使用一个过程来做到这一点)。
这对插入非常有用。但是,在更新整个事物时,我遇到了问题。规则的foo
部分很简单。但是,我不知道如何处理多个bar
s 部分。当我尝试DELETE FROM bars WHERE foo_id=new.foo_id
在规则中执行类似操作时,我会从 table 中删除所有内容bars
。
我究竟做错了什么?有没有办法实现我所需要的?最后,我对整个事情的处理方式是否明智?
(我对视图做了这个过于复杂的事情,因为我得到的数据是“<code>foo and all its bar
s”的形式,但用户必须只看到foobars
。)