为了让会员的字段扩展灵活,用user表存放会员的基本信息,在userexp表用key-value的形式存放会员的扩展信息,
数据表的内容如下
表user
+-----+-------------+---------+----------------------------------+
| id | user_name | role_id | user_pass |
+-----+-------------+---------+----------------------------------+
| 238 | wuli杨趙 | 1 | 7E7CE4CBB49BD3596B9AF3D4A233A9A3 |
| 240 | yangxiao | 2 | e10adc3949ba59abbe56e057f20f883e |
| 241 | qingshu | 11 | 847EB1D60DCC86A68E2FA4809FCA8159 |
| 245 | wuli | 2 | e10adc3949ba59abbe56e057f20f883e |
| 247 | ssss | 2 | 912ec803b2ce49e4a541068d495ab570 |
| 248 | quyang | 2 | e10adc3949ba59abbe56e057f20f883e |
| 249 | xiaoyang | 2 | 2cfd4560539f887a5e420412b370b361 |
| 250 | ceshi | 35 | 4297f44b13955235245b2497399d7a93 |
+-----+-------------+---------+----------------------------------+表userexp +---------+--------------------+------------------------------+
| user_id | exp_key | exp_value |
+---------+--------------------+------------------------------+
| 240 | wd_address_add | XX街 |
| 240 | wd_address_area | 120300 |
| 240 | wd_annualturnover | 1 |
| 240 | wd_birthday | 2016-5-19 |
| 240 | wd_businesslicense | img/201603/56f64f6ee8810.jpg |
| 240 | wd_businessscope | 互联网 |
| 240 | wd_companyname | 一家网络公司 |
| 240 | wd_companytype | 6 |
| 240 | wd_corporate | 靖哥哥 |
| 240 | wd_employeesnumber | 1 |
| 240 | wd_established | 2016-2 |
| 240 | wd_fax | 1234567 |
| 240 | wd_hotline | 40000000000 |
| 240 | wd_isoem | 1 |
| 240 | wd_location | 120.755676,30.7558,11 |
| 240 | wd_mainbusiness | 1 |
| 240 | wd_mobile | 13112341324 |
| 240 | wd_nickname | 一家 |
| 240 | wd_number | 123456 |
| 240 | wd_qq | 7892640 |
| 240 | wd_regcapital | 1250 |
| 240 | wd_sex | 1 |
| 240 | wd_switchboard | 1234567 |
| 240 | wd_tel | 1234567 |
| 240 | wd_weixin | weixin |
| 240 | wd_zipcode | 314200 |
+---------+--------------------+------------------------------+经过学习的实践,已经实现了会员的添加修改和删除和读取单条内容。我读取单条信息是先读出user表,再根据User表的id 去 读取userexp表,然后再用一个循环把读出的数据整理合并到user表的记录集里面
但现在问题来了,怎么实现读取多条会员信息,如果采用上面的方法会读取很多次数据库,肯定效率会很差。
我希望取出来的数据是这样的
+-----+-------------+---------+----------------+---------------+----+
| id | user_name | role_id | wd_address_add |wd_address_area| ...|
+-----+-------------+---------+----------------+---------------+----+
| 238 | wuli杨趙 | 1 | | | |
| 240 | yangxiao | 2 | XX街 |120300 | |
| 241 | qingshu | 11 | | | |
| 245 | wuli | 2 | | | |
| 247 | ssss | 2 | | | |
| 248 | quyang | 2 | | | |
| 249 | xiaoyang | 2 | | | |
| 250 | ceshi | 35 | | | |
+-----+-------------+---------+----------------+---------------+----+还有,如果我想按扩展表的字段做为查询条件,又该怎么办。比如,我要查所有 wd_companytype = 6 的会员,并读出这些会员的所有数据,又该怎么办呢?
怎么才能高效率的实现呢?
百度过 也问过朋友,他们说用行转列的方法,可是基础不太好,感觉意思懂了,但不知道怎么实现,怎么用我的thinkPHP 代码去实现他, 求大神们指点一二,感激不尽!
最佳答案