【问题标题】:web2py defining db tables and requires - alter table?web2py 定义数据库表和要求 - 更改表?
【发布时间】:2010-06-24 21:42:01
【问题描述】:

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

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

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

有没有人有其他可行的想法?

【问题讨论】:

    标签: web2py


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!是的,我不希望有循环引用,但我只是一个低级程序员,而不是 DBA,所以我不允许对 DB 设计发表意见。 ;)
    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2012-02-03
    • 2012-04-16
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多