【问题标题】:Build a social network & organization database建立社交网络和组织数据库
【发布时间】:2016-10-02 07:43:00
【问题描述】:

我正在攻读政治学博士学位,并计划收集有关多个组织的数据并进行一些社交网络分析。 我是数据库构建和管理的新手,我想知道哪种工具(LibreOffice Base、MySql 等)最适合我。 在这个数据库中,我会有一个组织列表(大约 200 个),附有各种属性和文件,一个在其中一个或几个组织中工作的个人列表,一个链接不同组织的联盟列表,一个事件列表一些组织/个人等等。

我从废品开始,您认为构建这个数据库的最佳方式是什么?我尝试使用 LibreOffice Base 并开始创建不同的表(组织、个人等),但我不确定它是否符合我的需求。

提前致谢!

【问题讨论】:

    标签: mysql database database-design social-networking


    【解决方案1】:

    对于这个用例,我认为您应该查看像 Neo4J 这样的图形数据库引擎。

    使用图形数据库,可以以节点和边的形式存储实体(例如您的组织)以及它们之间的关系。通过以这种方式存储数据,您可以轻松地查询数据以获得使用标准关系数据系统可能无法轻松完成的见解。

    Free ebook describing the need for graph storage and the common problems solved by such a datastore

    假设您希望存储有关组织、为这些组织工作的个人、他们的工作角色等信息。您可以通过创建节点和关系来实现,如下所示:

    (Person:"Joe Bloggs")-[:WORKS_AT]->(Organization: Google)
    (Person:"Joe Bloggs")-[:WORKS_AS]->(JobRole: "Software Developer")
    

    上面描述了一个叫 Joe Bloggs 的人,他作为一名软件开发人员在 Google 工作。您可以使用 Ciper 查询语言(用于查询 Neo4j 的官方语言)让所有软件开发人员为 google 工作。

    【讨论】:

    • “图形”数据库比关系数据库更好的原因 - 没有提到?您的回答看起来完全像“我正在使用 Neo4J,所以我会去推荐它”。客观并提供原因为什么工具 A 而不是工具 B。就目前而言,关系数据库适合这项工作的工具。为什么要用graph db这个工具?它有什么特别之处,是关系型的人做不到的?请不要提及性能,因为所有这些测试都是为了吸引人们而设计的。
    • 你是对的,因为我可能没有详细描述为什么 OP 应该查看图形数据库而不是关系数据库。然而,这个问题本身有点宽泛,我提供了一个文献链接,详细说明了为什么图形数据库更适合社交网络相关用例。此外,是的,性能是人们可能进行转换的一个重要原因。我们已经在生产系统中进行了切换,并且与以前严重依赖缓存非规范化数据的关系系统相比,性能得到了显着提升
    • 那么,任何人应该如何相信你所说的是事实呢?你说你获得了性能,所以我应该相信你已经正确使用了关系系统,以及配置和实际的数据结构/查询?你的陈述无疑的证据在哪里?这正是此类陈述危险的原因。仅在本周,我就看到很多公司对关系系统一旦由了解 SQL 的人配置和使用感到震惊。我总是说适合这项工作的工具。关系数据库就是这样一种工具。
    • 谢谢,我会调查的!性能对我来说并不是一个重要的标准,因为我的节点和数据数量有限。还有 Mjh,在我的情况下,关系数据库有什么好处?
    • 看起来很有趣,我在看书和手册。但我找不到这个问题的答案:是否可以将关系导出为边缘列表或社交网络矩阵(0 和 1),以便您可以将其导入 Pajek 或 R 等 SNA 软件?
    猜你喜欢
    • 1970-01-01
    • 2011-04-10
    • 2016-09-27
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2011-03-21
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多