我有两个问题。
1.方案中没有类别对应的joinable!
条目,为什么会出现这种情况?
1.如果添加了两列外键引用到同一表,则不允许手动添加两条joinable!
语句,例如:
joinable!(categories -> users (created_by));
joinable!(categories -> users (modified_by));
我尝试使用一个指向“USERS”表的外键引用来创建“Categories”表,删除了数据库、删除了方案、运行了迁移,但仍然没有更改方案。
table! {
categories (id) {
id -> Int4,
category_code -> Varchar,
description -> Varchar,
gl_cr -> Varchar,
gl_dr -> Varchar,
asset_cost_less_than -> Nullable<Int4>,
over_ride_depreciation_rate -> Bool,
over_ride_useful_life -> Bool,
created_by -> Int4,
created_on -> Timestamp,
modified_by -> Nullable<Int4>,
modified_date -> Nullable<Timestamp>,
}
}
table! {
users (id) {
id -> Int4,
username -> Varchar,
full_name -> Varchar,
email -> Varchar,
active -> Bool,
created_on -> Timestamp,
}
}
架构的一部分。Rs是
joinable!(branch_categories -> categories (category_id));
joinable!(branches -> cities (city_id));
joinable!(branches -> users (created_by));
joinable!(category_book_rate_codes -> books (book_id));
joinable!(category_book_rate_codes -> categories (category_id));
joinable!(category_book_rate_codes -> depreciation_rates (rate_id));
joinable!(cities -> states (state_id));
joinable!(cities -> users (created_by));
1条答案
按热度按时间b4lqfgs41#
如果您的
categories
表有两列引用了users
表:DIESEL不会为
categories
到users
生成joinable!
条目,因为使用哪一列将是不明确的。您也不能同时手动创建它们,因为它们的实现会发生冲突。该宏旨在使这种查询在没有显式ON
子句的情况下成为可能:我不确定为什么删除一个外部引用并重新生成模式对您没有影响,但无论如何……当然,您可以手动实现其中的一个,如下所示:
然后,当您希望根据
categories
的创建者将categories
连接到users
时,可以使用上面的查询语法。如果以后还想根据它们的最后一个修饰符连接它们,可以在您的查询中显式地(未测试)这样做: