大问题,不能自己解决,在我的应用程序中我希望每个用户都会有'x'的朋友,朋友列表,问题是如果我创建2个表,'用户','朋友',第一个表将保存用户名和uid,第二个表将保存它们之间的关系,就像每行将有3列,'user1',user2','id'
但如果我有100万用户,每个有200个朋友,第二个表将有2亿行,会发生什么......
我试着考虑拆分表,所以我为每个10000个用户朋友创建100个表,将朋友数量限制为200,然后每个表最多为200万行。当1个表达到一定数量的行计数时,动态创建每个表,并在另一个表中监视。
另一种可能的解决方案是将它们存储在数组中,以序列化数组,因此它将文本存储在数据库的1列中,这更简单,但数组可以大200个朋友列表,并且我担心内存使用成本会很高。
我的另一个解决方案是创建200列,'friend1','friend2',...,'friend200'。
然后使用简单的SELECT *来记录列中的所有朋友列表,问题是,它可能在内存上也很昂贵,而且我如何只选择非空/列的列。如果我需要从朋友列表中删除朋友会发生什么...如何识别正确的列,将其归零,然后输入新的朋友内容...