小编Lev*_*ell的帖子

为存储来自多个服务的内容的站点设计数据库?

我正在构建一个站点,该站点实现了 David Allen 的“完成任务”,该站点可以接收您的电子邮件、Facebook 新闻源、您在 Twitter 上关注的人的推文,并且计划提供更多服务。问题是我不是 DBA,我不确定如何设计数据库,以便在向站点添加功能时,我不必为了存储它而人为地破坏人们的原始数据(例如,我想在将来的某个时候添加获取 RSS 提要的功能,但我不确定如何做到这一点而不会弄得一团糟)。

我已经使用 DBDesigner 4 记下了我的初步想法,下面是图表和 SQL。

一些注释有助于澄清事情。

  • Accounts 表用于存储 facebook、twitter 等的身份验证令牌。
  • 消息表不完整。
  • emailconfiguration 和 users 中的密码字段是加密的,users 使用单向哈希,emailconfiguration 使用双向哈希。
  • 我正在使用 Amazon RDS 上的 InnoDB 存储引擎使用 MySQL 数据库。
  • 每个项目可能有一个与之关联的上下文。
  • 每条消息可能有一个项目和上下文,但这不是必需的。
  • imap、smtp 和 pop3 表的存在是为了删除电子邮件配置中的重复项。
  • 对该数据库的查询由clojure 库Korma生成。

有人可以指出我正确的方向吗?如果建议,我也愿意考虑使用 NoSQL 数据库。感谢您的时间和考虑。

站点数据库架构

这是 SQL 创建脚本,以防万一有人想看到它。

CREATE TABLE Pop3 (
  domain VARCHAR NOT NULL,
  host VARCHAR NULL,
  port INTEGER UNSIGNED NULL,
  ssl BOOL NULL,
  PRIMARY KEY(domain)
)
TYPE=InnoDB;

CREATE TABLE Imap (
  domain …
Run Code Online (Sandbox Code Playgroud)

mysql database-design

6
推荐指数
1
解决办法
1598
查看次数

标签 统计

database-design ×1

mysql ×1