Heim >Backend-Entwicklung >PHP-Tutorial > 一直有一个有关问题,基本,但是还是想弄清楚。mysql读取数据库存储。铛铛铛

一直有一个有关问题,基本,但是还是想弄清楚。mysql读取数据库存储。铛铛铛

WBOY
WBOYOriginal
2016-06-13 12:52:44781Durchsuche

一直有一个问题,基本,但是还是想弄清楚。mysql读取数据库存储。。。铛铛铛

本帖最后由 xianglei1130 于 2013-03-04 14:50:06 编辑 一直以来都有这个问题,今天比较亢奋,发个贴跟大家讨论下。

自知自己技术一般,所以大虾别喷。

就是假如有一个总记录 A 表,里面有各种字段,sid  title  content  link....

然后有一个个人记录表 B 表 ,字段:id name sid(A表的sid)  来记录这个人所拥有的A表中的数据。

那现在问题出现了,假如B表”张三“有10条A表记录,我是把  10个sid用一个符号组合在一起存入B表的sid呢。还是生成10条记录存入B表呢?  





考虑到往出取的时候   第1种方法自然是用explode 来分割B表sid,然后进行循环再查询A表来取出数据。  第2种方法就是直接将该id的所有记录查出循环出来。  
  
那么到底是哪种方法好?  从 数据库  程序各方面所下。    在下不知道阐述的怎么样,还望指教。。。
数据库 存储 mysql
------解决方案--------------------
1、可以用一个符号(,)组合在一起存入B表的sid,查询时 find_in_set(A.sid,B.sid)
这种情况要求B.sid足够大,假如不是10条而是1000条,10000条呢
2、可以每个sid一条存入B,查询时 A.sid=B.sid
看着很傻,但很有效
3、以上的方案都是假定A.sid是公有的,即多个用户可以拥有同一个A.sid。比如:好友、关注
如果A.sid是用户私有的,比如发帖
那就应该在A中增加一个uid字段来记录归属
------解决方案--------------------
第二种简单,第explode的话,还要自己做很多操作
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn