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

SQL: Tips on structuring table to fit 3d data?

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

据我了解,您不应为每个用户创建 table,因为这样效率低下且难以管理。所以,我不应该为每个公司创建一个table。

我正在寻找的是将所有这些数据整合到一个 table 中的指南。以下是一些具体问题:

谢谢。

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

我认为你可以用很少的 table 来建模它(schem,关系符号中的 a):

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)

注意:外键表示为referenced_table_ID

使用此架构,您可以:

  • 对多家公司进行相同的调查,
  • 让一个用户使用来自不同公司的不同值进行相同的调查
  • 跟踪每个单独的问题
  • 跟踪每个单独的答案
  • 问题当然没有数据复制,完成后就可以了
  • 当然你可以写一个视图把所有的都放在一个单一的table