是否可以在柴油中使用没有主键的 table?锈

Is it possible to use a table without primary key in diesel? Rust

我是 Rust 的新手,我正在使用 Diesel 和 Actix-web 制作 API。我在 pgsql 和 mongodb 中有一个数据库,我只为 pgsql.

使用 diesel 1.4.4

首先,我做了一个测试,用它的 tables 和它的主键创建了一个数据库,一切正常。但是,总会有table没有主键只有外键的场景。

我注意到 Diesel 仅支持带主键的 table,但是如果您想使用没有主键而只有外键的 table,是否有导入 table 的方法?手动可以吗?也就是说,在 schema.rs 和我的 models.rs.

中定义它

diesel 不支持没有主键的表,因为从数据库的角度来看,这是不好的做法。在几乎所有情况下,都会有一些列组合形成一个自然主键,否则最好添加一个人工主键。如果您的 table 仅包含外键列,则自然外键将由所有这些列构成。

也就是说:只需告诉 diesel 应将特定(组合)列视为主键,就可以在没有主键列的情况下使用带有 tables 的 diesel。在这种情况下,您需要手动为那些 table 编写 table! 定义。