关于在数据库中存储数据,我有一个简单但重要的问题。
假设一个网站有100,000 个用户。这些用户可以互相成为朋友。哪种存储方法最理想
方法一:
friends
在 USERS 表中创建一个字段。类型:文本- 将所有朋友的 ID 保存在其中,并用
,
. 例如:用户 1 的朋友:2,3,4,5,6,... - 最糟糕的状态:所有用户都是朋友,每个用户都有一个全文朋友字段。所以在 php 方面,应该用
,
分隔符分隔这个字段,这需要一些过程。
方法B:
做一张
friendship
桌子+------+---------------------+ | uid | friend_id | +------+---------------------+ | 1 | 2 | | 1 | 3 | | 1 | 4 | | 1 | 5 | +------+---------------------+
正如您在上面看到的,对于用户的每个朋友,我应该在表中插入一个新行。
- 最糟糕的状态:所有用户都是朋友,因此表中应存储 100,000 x 100,000(不确定)行。
这两种方法哪一种可以?性能和优化。
提前致谢。