Facebook数据库设计...为什么要有个人资料表?

| 见下图 由于1个帐户具有1个配置文件关系,因此为什么要有一个配置文件表?除了存储状态外,配置文件表的用途是什么。为什么不在“帐户”表中包括状态,并直接从“帐户”表与BasicInformation,PersonalInformation等建立关系。 http://i.stack.imgur.com/u7GKB.jpg     
已邀请:
        如果在将来的某个时间更改模型,以便一个帐户可以有多个配置文件,那么使用两个表比只使用一个表要好得多。 关于连接的成本,您需要对其进行量化,并确定不应该担心速度差异的位置。关系数据库中最常见的新手错误之一是过度担心使用联接降低速度。     
        一些想法和有根据的猜测。 在概念上,一个帐户 和个人资料是两个不同的 东西。 将配置文件状态添加到 帐户表使该表更宽 慢一点 由于地位只占您的多数 最近的帖子(是吗?),那个 桌子可以放在另一个地方 表空间,可能是疯狂的 快速磁盘阵列,用于快速查找。 状态可能看起来很多 比任何东西都更频繁 帐户表。 安全性更易于管理。 许多第三方应用可能是 允许访问您的状态,但是 他们不一定有 访问您的电子邮件地址和 密码。物理隔离(单独的表)很容易得到正确的解决。     
        我想这是因为并非每个帐户都有与之关联的个人资料。即关系实际上是1:0/1,而不是1:1。     
        这只是一个抽象问题。 帐户中包含个人资料数据。因此,它具有一个配置文件的实例(表)。 这样,您可以单独访问配置文件数据,并且将来可能会向帐户中添加更多数据。     

要回复问题请先登录注册