SQL:构建 table 以适应 3d 数据的技巧?
SQL: Tips on structuring table to fit 3d data?
我想要一些关于数据库优化的指导。我有一个基本上是每日调查的几个滑块(所以浮动 0-1)。每天,来自同一家公司的 X 人将填写此内容,并提交他们对此 "survey" 的值。
据我了解,您不应为每个用户创建 table,因为这样效率低下且难以管理。所以,我不应该为每个公司创建一个table。
我正在寻找的是将所有这些数据整合到一个 table 中的指南。以下是一些具体问题:
- 如果每个公司都有一个 5 位数的 ID,并且我要将所有数据记录在同一个 table 中,其中一列显示 ID,一列带有时间戳,效率如何当数据达到数百万或数千万时,它会从某个公司(又名 5 位 ID)获取所有数据点?
- 一个table的大小对访问效率有多大影响?
- 如果我要使用带有 5 位 ID 的方法,您是否会建议我也为每个 "survey entry"(又名行)本身分配索引?
- 对于针对我的特定案例构建单个 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
我想要一些关于数据库优化的指导。我有一个基本上是每日调查的几个滑块(所以浮动 0-1)。每天,来自同一家公司的 X 人将填写此内容,并提交他们对此 "survey" 的值。
据我了解,您不应为每个用户创建 table,因为这样效率低下且难以管理。所以,我不应该为每个公司创建一个table。
我正在寻找的是将所有这些数据整合到一个 table 中的指南。以下是一些具体问题:
- 如果每个公司都有一个 5 位数的 ID,并且我要将所有数据记录在同一个 table 中,其中一列显示 ID,一列带有时间戳,效率如何当数据达到数百万或数千万时,它会从某个公司(又名 5 位 ID)获取所有数据点?
- 一个table的大小对访问效率有多大影响?
- 如果我要使用带有 5 位 ID 的方法,您是否会建议我也为每个 "survey entry"(又名行)本身分配索引?
- 对于针对我的特定案例构建单个 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