【问题标题】:Save two dimensional table to database将二维表保存到数据库
【发布时间】:2014-04-21 13:25:50
【问题描述】:

假设行数和列数超过数百个,我如何有效地在数据库中表示下表(我认为创建具有 100 个字段的数据库不是一个好主意:))

我正在使用 Ruby on Rails/SQLite。

【问题讨论】:

  • 所有行都有数百列吗?还是只有数百个可能的值,但实际上只填充了几个?

标签: sql ruby-on-rails ruby database sqlite


【解决方案1】:

这里有一个经典的反规范化任务。而经典的方法(不知道您的读写模式或其他需求)是制作三个表格:

ID | Name
---------
1  | Gothamist
2  | GigaOm
3  | Quick Online Tips

ID | Name
----------
1  | China
2  | Kids
3  | Music
4  | Yahoo

ID1 | ID2 | Value
-----------------
1   | 1   |  0
1   | 2   |  3
...
3   | 4   |  22

【讨论】:

  • 这可能表明 OP 应该使用键值存储而不是 RDB。
  • 可能。这是我最初的观点:在不了解读写模式、性能等方面的需求的情况下,很难提出设计建议。可能是 NoSQL 案例,可能是 RDB,可能是定制的内存事物。
【解决方案2】:

您的数据结构是一个双向无方向加权图。如果您可以使用图形数据库,那将是一个不错的选择。

【讨论】:

    【解决方案3】:

    100 多个字段很可能未标准化,但并非总是如此。规范化是您的目标,而不是关于列数的硬性规定。

    这个问题很难回答,因为列和键对我来说没有多大意义。

    我可以在这里看到一对多的关系,但这是唯一明显的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多