我得到了 3 个表,这些表存储了用户注册时的常用数据:语言、国家、国籍。每个表都有字段:id和name。
我有一个主表users,它几乎存储了来自用户的所有数据。
另一个名为tableregistry的表具有以下结构:
id | tableName | tableValue
1 | finalJoin | 0
2 | language | 1
3 | country | 2
4 |nationality| 3
它存储的另一个称为巧合的是共享许多用户的公共数据:
id | idUser | nTable | cValue
因此,如果我们有第 80 位用户住在荷兰,但他是秘鲁本地人并且说中文,则数据将以这种方式保存(考虑荷兰在国家表中的 id 为 20,秘鲁国籍在国籍表中的 id 为 34,而中文在语言表上的 id 为 22 )
198 | 80 | 2 | 20
199 | 80 | 3 | 34
200 | 80 | 1 | 22
因此,如果我们想要执行人员搜索,我使用存储过程来搜索巧合,公共数据只是获取 3 个临时表来获取用户 1.来自某个国家 2.taht 生活在任何国家,而不是本地和 3。说某种语言。
使用表用户对这些临时表进行多重连接,我们将获得此搜索的用户列表。
问题是。最好使用视图还是只保留临时表策略?