数据库可靠集成与对象关系映射
1. 与 DynamoDB 交互
在与 DynamoDB 交互时,我们首先需要定义数据结构。以下是表示位置信息的 Location
结构体:
#[derive(Debug)]
struct Location {
user_id: String,
timestamp: String,
longitude: String,
latitude: String,
}
此结构体包含 user_id
作为分区键, timestamp
作为排序键。DynamoDB 是键值存储,每个记录都有唯一键,声明表时需决定哪些属性作为记录的键,最多可选两个键,第一个是必需的分区键,用于在数据库分区间分布数据,第二个是可选的排序键。
rusoto_dynamodb
库中的 AttributeValue
结构体用于查询和结果中插入或提取表数据。为将属性的 HashMap
转换为 Location
类型,我们添加 from_map
方法:
impl Location {
fn from_map(map: HashMap<String, AttributeValue>) -> Result<Location, Er