web2py 是否绝对需要数据库表中按顺序编号的 id 列
Does web2py absolutely require a sequentially numbered id column in database tables
我有一个由 web2py 访问的 mySQL 数据库,但有一个 table(它有一个标记为 'id' 的自动递增列),它也经常被另一个脚本更改.该脚本频繁地在 table 中删除和插入新行,因此尽管 'id' 列中的整数是唯一的并且是升序的,但也遗漏了许多中间数字。这会导致 web2py 将来出现问题吗?
请注意,我只通过不同的列访问这个 table,它包含一组不同的唯一标识符,所以我根本不需要 'id' 列:它只是在那里因为文档声明 web2py 需要它。
在 id 字段中缺少值不会以任何方式影响 web2py。但是在 web2py 中编辑此记录时删除或更改记录的 ID 会导致错误。所以请注意您的 web2py 用户在脚本是 changing/deleting IDs 期间没有编辑记录。
接受的答案是正确的,但也请注意,根据您的用例,您可能根本不需要 table 中的自动递增整数 id
字段,因为 DAL 可以通过 db.define_table()
的 primarykey
参数处理其他类型的主键。特别是,如果您正在使用只读 table 并且任何引用都是 to/from 其他键控 table,则不需要 id
字段。有关详细信息,请参阅 http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Legacy-databases-and-keyed-tables。
我有一个由 web2py 访问的 mySQL 数据库,但有一个 table(它有一个标记为 'id' 的自动递增列),它也经常被另一个脚本更改.该脚本频繁地在 table 中删除和插入新行,因此尽管 'id' 列中的整数是唯一的并且是升序的,但也遗漏了许多中间数字。这会导致 web2py 将来出现问题吗?
请注意,我只通过不同的列访问这个 table,它包含一组不同的唯一标识符,所以我根本不需要 'id' 列:它只是在那里因为文档声明 web2py 需要它。
在 id 字段中缺少值不会以任何方式影响 web2py。但是在 web2py 中编辑此记录时删除或更改记录的 ID 会导致错误。所以请注意您的 web2py 用户在脚本是 changing/deleting IDs 期间没有编辑记录。
接受的答案是正确的,但也请注意,根据您的用例,您可能根本不需要 table 中的自动递增整数 id
字段,因为 DAL 可以通过 db.define_table()
的 primarykey
参数处理其他类型的主键。特别是,如果您正在使用只读 table 并且任何引用都是 to/from 其他键控 table,则不需要 id
字段。有关详细信息,请参阅 http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Legacy-databases-and-keyed-tables。