从diesel.rs 文档中,我看到了以下示例:
#[derive(Insertable)]
#[table_name="users"]
pub struct NewUser<'a> {
pub first_name: &'a str,
pub last_name: &'a str,
pub email: Option<&'a str>,
}
和
#[derive(Insertable)]
#[table_name="posts"]
pub struct NewPost<'a> {
pub title: &'a str,
pub body: &'a str,
}
事实上,每个官方示例都为 Insertable 指定了一个生命周期参数。但是,当我在 github 上阅读真实示例时,“在野外”看到的每个 Insertable 结构都省略了生命周期参数,而是定义了类似的结构:
#[derive(Insertable)]
#[table_name = "users"]
pub struct CreateUser {
first_name: String,
last_name: String,
role: i16,
}
在数据库性能方面,一种方法是否比另一种方法有优势?如果我以一种或另一种方式做,我会遇到问题吗?