我只需要一些有关数据库优化的指导。我基本上是每天进行几个滑盖的调查(因此浮动0-1)。每天,来自同一公司的X人将填写此表,并提交此“调查”的值。

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

我正在寻找的是将所有这些数据放入一张表的指南。以下是一些具体问题:


如果每个公司都有一个5位数的ID,并且我要将所有数据记录在同一张表中,且其中一列显示id和一个带有时间戳的列,那么从某家公司(即5位数)获取所有数据点的效率如何? ID)何时数据达到数百万或数千万?
表的大小在访问时会影响多少效率?
如果我要使用具有5位数字ID的方法,您是否建议我也为每个“调查条目”(又名行)分配本身的索引?
对于针对我的特定案例构建单个表,您有任何一般性提示或想法吗?


谢谢。

最佳答案

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

我认为您可以用很少的表格(关系表示法中的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

使用此架构,您可以:


对多家公司进行相同的调查,
有一个用户以不同公司的不同价值进行相同的调查
跟踪每个问题
追踪每个答案
问题当然没有数据复制,一旦完成,就可以
当然,您可以编写一个视图以将所有视图合并到一个表中

关于mysql - SQL:有关构造表以适合3d数据的提示?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54433721/

10-11 19:37
查看更多