我正在尝试在web2py中使用遗留的sqlite数据库。我无法更改架构,因为其他几个应用程序正在使用该数据库。
我的问题是db表要求看起来像这样:TableC需要TableB,TableB需要TableA,TableA需要表C.
因此,当所需的表尚未定义时,我当然会收到错误。我想我会首先尝试定义TableC的一部分,然后通过在db.py中稍后更改表来添加其他列。这会有用吗?如果是这样,我如何更改db.py代码中的表?
有没有人有其他想法可行?
答案 0 :(得分:0)
来自维基百科(http://en.wikipedia.org/wiki/Circular_reference)“大多数关系数据库(如Oracle和SQL Server)不允许循环引用,因为从具有依赖关系的表中删除一行的行始终存在问题,而另一个表是从另一个表中删除的。 key)指的是被删除的行。“
Web2py不允许循环引用 - 在数据库级别 - 出于同样的原因(它允许自引用)。通常,如果您尝试循环引用,则需要通过链接表来实现多对多关系。
反正。有一个解决方法。创建最后一个引用字段和整数,并在web2py级别(IS_IN_DB)而不是在db级别强制执行引用。