我正在尝试实现一些模仿关系(sqlite)数据库中的继承的表。我的目标是拥有一个包含通用字段的主表,以及一些具有专业字段的子表。主表中的每条记录都将在其中一个特定表中恰好有一个对应项。我想要的看起来像这样:
主表:
id (PK) #Your average web2py unique auto-incrementing int field
#Some general fields
子表:
id (PK, FK referencing the PK of the master table)
#Some specialized fields
为每个子表设置一个默认的“id”PK 对我来说没有用。我只需要一个对主表的 FK 引用,它可以作为子表的 PK。这意味着子表的 PK 将是唯一的,但会包含间隙。这是因为子表只会引用主表的部分记录。
我的印象是这样做(不给子表提供常规的“id”PK)违反了 Web2py 方式。所以我的问题如下:
- 这是一个坏主意™吗?如果是这样,为什么?
- 我将如何实现这一点?Web2py 可以处理没有自动递增 int 作为 PK 的表吗?
在编写代码时应用正确的风格和实践对我来说非常重要。我对替代方法持开放态度。
感谢您的帮助。