1

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

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

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

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

4

1 回答 1

1

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

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

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

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

于 2013-09-05T07:07:09.720 回答