2

我正在尝试使用Diesel来管理我的数据库以供使用Rocket,但我一直在为我的表编写 models.rs:

CREATE TABLE `problemSet` (
  `id` varchar(10) NOT NULL,
  `contestId` int DEFAULT NULL,
  `difficulty` varchar(10) DEFAULT NULL,
  `title` varchar(300) DEFAULT NULL,
  `rating` int DEFAULT NULL,
  `link` varchar(300) DEFAULT NULL,
  `binary search` tinyint(1) DEFAULT '0',
  `chinese remainder theorem` tinyint(1) DEFAULT '0',
  `constructive algorithms` tinyint(1) DEFAULT '0',
  `data structures` tinyint(1) DEFAULT '0',
  `dfs and similar` tinyint(1) DEFAULT '0',
  `divide and conquer` tinyint(1) DEFAULT '0',
  PRIMARY KEY(`id`)
  );

在这里,我对如何在models.rs 的struct 中为带有空格的column_names 编写标识符感到困惑。

我指的是 Diesel 和 RUST 的官方指南。

4

1 回答 1

4

定义架构时,您可以使用该sql_name属性为列指定与名称不同的名称,因为它将出现在 rust 代码中:

diesel::table! {
    problemSet {
        ...
        #[sql_name = "divide and conquer"]
        divide_and_conquer -> Text,
        ...
    }
}

请参阅:表格的文档!宏

话虽如此,我的偏好是远离列名中的空格。

于 2020-05-15T08:06:47.553 回答