【问题标题】:What Database model should I use to store this data format?我应该使用什么数据库模型来存储这种数据格式?
【发布时间】:2013-09-05 06:58:35
【问题描述】:

我基本上有一堆带有字段的对象;

此对象实例的字符串标识符id : "banana"
字符串键和值的字典 data : {}
与此相关的一组实例 ID friends: ["apple", "orange" ]
一组相关的(以不同的方式)实例ID。 followers: ["grapefuit"]

您可能已经推断出此数据将为 Twitter 网络建模。
在我的数据生命周期中(这将超出任何特定程序执行的生命周期),实例的数量和存储在字段中的数据会发生变化(预计会增长),所以我想将所有这些数据存储在 MySQL 中由 PHP 脚本连接的数据库。

我是数据库领域的菜鸟,但我对表模型和查询结构有点了解。
我应该如何为这个特定问题构建数据库?

【问题讨论】:

  • 拜托,你需要解释一下,你想存储他们信息的实体是什么:朋友、追随者、?

标签: php mysql database


【解决方案1】:

在使用类似 MySQL 的数据库时,要记住的一件事是,您应该避免在特定列中包含诸如 dicts 和数组之类的东西。原因是这使得查询这些值变得很糟糕。

例如,我要做的是有一个“Friends”模式,它有两列,FriendA 和 FriendB。对于您拥有的每一对朋友,这将是该数据库中的一行。您可以对“Followers”执行相同的操作,有一个 Follower 和一个 Followee 列。

现在查询这些表只需要一个连接,更重要的是,如果两个朋友取消了好友关系或有人决定取消关注其他人,这只是一次删除而不是两次(而且没有数组!)

当然,除非您打算拥有非结构化的键/值数据,否则请将其扩展为完整的架构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-06
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多