我正在构建一个应用程序,要求用户每天填写调查问卷。问题总是一样的。基本上它是日记系统,并且“条目”是每天制作的(每个条目是特定用户在特定日期的5个问题的答案集)。
我的问题是:
在数据库原理图方面对此进行组织的最佳方法是什么?我想要有两张桌子:
Users:
username(pk)
password
.
.
diaryNo
Entries:
date(pk)
diaryNo(pk)
Qu1
Qu2
...
我的问题是条目表将存储所有用户的条目。可以通过链接diaryNo将特定条目映射到用户。显然,一段时间后,条目表将变得庞大,sql性能将下降。
这一定是一个常见问题 - 有没有解决方法?更好的实施想法?
答案 0 :(得分:0)
Entries (diaryNo)
或Entries (diaryNo,date)
上的索引,特别是如果您经常根据Entries
选择diaryNo
。即diaryNo=?
出现在大多数选择查询中。
答案 1 :(得分:0)
首先 - PK不应该有任何商业意义 - 想象一下如果用户要求更改登录。只需使用简单的autoinc。 你应该使用这些表:
Users (id(PK), username, ....)
Questions (id(PK), question, ....)
Answers (id(PK), userId(FK)(I), questionId(FK)(I), date(I), answer)