代码之家  ›  专栏  ›  技术社区  ›  Riley Fitzpatrick

SQL:构建表格以适应3d数据的技巧?

  •  0
  • Riley Fitzpatrick  · 技术社区  · 6 年前

    我想要一些关于数据库优化的指导。我有一个基本上是每天的调查,有几个滑块(所以浮动0-1)。每天,X个来自同一家公司的人将填写此表,并提交他们的价值观用于此“调查”。

    我的理解是,您不应该为每个用户创建表,因为这样做效率低且难以管理。因此,我不应该为每个公司创建一个表。

    我想要的是关于将所有这些数据放在一个表中的指导。以下是一些具体问题:

    • 如果每个公司都有一个5位数的ID,我要在同一个表中记录所有数据,其中一列显示ID,另一列显示时间戳, 当数据达到数百万或数千万时,从某个公司(也称为5位ID)获取所有数据点的效率如何?
    • 一个房间的大小是多少 桌子 访问时会影响效率吗?
    • 如果我使用5位ID的方法,您是否建议我也为每个“调查条目”(又名行)分配自己的索引?
    • 你有什么一般性的建议或想法,可以用我的特殊情况来构建一张表吗?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   DDS    6 年前

    不建议对所有数据使用单个表。

    我认为您可以使用很少的表(schem,一种关系表示法)对其进行建模:

    Users(ID,name, bla, bla, bla) --user's data
    Company(ID, Name, bla, bla) --company's data
    
    question(ID,question) --a single question
    survey(ID, date, some general stuff about that survey) --track each survey    
    answer(ID, question_id, survey_id, user_id, company_id, answer_value) --an answer to a question (in a survey)
    

    参考表 _身份证

    使用此模式,您可以:

    • 对多家公司进行同样的调查,
    • 跟踪每个问题
    • 问题没有数据复制当然,一旦完成,您就可以了
    • 当然,您可以编写一个视图,将所有内容都放在一个表中