1

我正在尝试在 web2py 中使用旧的 sqlite 数据库。我无法更改架构,因为数据库当前正在被其他几个应用程序使用。

我的问题是数据库表的要求如下所示:TableC 需要 TableB,TableB 需要 TableA,TableA 需要 Table C。

因此,当所需的表尚未定义时,我当然会收到错误消息。我想我会先尝试定义 TableC 的一部分,然后通过稍后在 db.py 中更改表来添加其他列。这行得通吗?如果是这样,我如何更改 db.py 代码中的表?

有没有人有其他可能有用的想法?

4

1 回答 1

0

来自维基百科(http://en.wikipedia.org/wiki/Circular_reference)“大多数关系数据库(如 Oracle 和 SQL Server)都不允许循环引用,因为从与另一行有依赖关系的表中删除一行时总是会出现问题来自另一个表(外键),它指的是被删除的行。”

Web2py 不允许循环引用 - 在数据库级别 - 出于同样的原因(它确实允许自我引用)。通常,如果您尝试循环引用,则需要多对多关系而不是通过链接表。

反正。有一种解决方法。制作最后一个引用字段和整数,并在 web2py 级别(IS_IN_DB)而不是 db 级别强制引用。

于 2010-06-25T06:35:07.180 回答