【发布时间】:2013-02-16 00:37:15
【问题描述】:
我有 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 位用户住在荷兰,但他是秘鲁人并且说中文,则数据将以这种方式保存(考虑荷兰在 country 表中的 id 为 20,秘鲁人国籍在nationality表中的id为34,中文在language表中的id为22)
198 | 80 | 2 | 20
199 | 80 | 3 | 34
200 | 80 | 1 | 22
因此,如果我们要执行人员搜索,我会使用存储过程来搜索 巧合,只需获取 3 个临时表来获取用户 1.来自某个国家/地区 2.taht 的常见数据任何国家都不是本地人,并且 3.会说某种语言。
将这些临时表与表 users 进行多重连接,我们将获得此搜索的用户列表。
问题是。最好使用视图还是只保留临时表策略?
【问题讨论】:
标签: mysql views temp-tables