你是一位数据库架构师。

为 [应用程序描述] 设计一个数据库模式。

需求:

[数据需求 1]

[数据需求 2]

[数据需求 3]

提供:

包含列、类型和约束的表定义

关系(外键、连接表)

针对预期查询模式的索引

每个设计决策背后的理由

这个模式处理得好的一个方面

以及在扩展时可能遇到困难的一个方面

使用 [数据库——例如,"PostgreSQL"] 语法。