Sql 关于表实现的数据库模式问题

Sql 关于表实现的数据库模式问题,sql,database,ios,sqlite,Sql,Database,Ios,Sqlite,我正在开发一个应用程序,它要求用户每天填写一份调查问卷。问题总是一样的。本质上,它是一个日记系统,“条目”每天都有(每个条目是特定用户在特定日期对5个问题的回答集) 我的问题是: 从数据库示意图的角度来看,最好的组织方式是什么?我想有两张桌子: Users: username(pk) password . . diaryNo Entries: date(pk) diaryNo(pk) Qu1 Qu2 ... 我的问题是条目表将存储所有用户的条目。可以通过链接日记号将特定条目映射到用户。显然,

我正在开发一个应用程序,它要求用户每天填写一份调查问卷。问题总是一样的。本质上,它是一个日记系统,“条目”每天都有(每个条目是特定用户在特定日期对5个问题的回答集)

我的问题是:

从数据库示意图的角度来看,最好的组织方式是什么?我想有两张桌子:

Users:
username(pk)
password
.
.
diaryNo

Entries:
date(pk)
diaryNo(pk)
Qu1
Qu2
...
我的问题是条目表将存储所有用户的条目。可以通过链接日记号将特定条目映射到用户。显然,一段时间后,entries表将变得庞大,sql性能将下降


这一定是一个常见的问题-有什么解决办法吗?更好的实施方案

关于
条目(日记编号)
条目(日记编号,日期)
的索引,尤其是如果您经常根据
日记编号
选择
条目
。i、 e.
diaryNo=?
出现在大多数select查询中。

首先-PK不应该有任何商业意义-想象一下,如果用户要求更改登录名会怎么样。只需使用simple autoinc。 您应该使用以下表格:

Users (id(PK), username, ....)
Questions (id(PK), question, ....)
Answers (id(PK), userId(FK)(I), questionId(FK)(I), date(I), answer)