php – 哪种方法更好地将相关数据存储在表中
关于在数据库中存储数据我有一个简单而重要的问题.
假设一个网站有100,000个用户.这些用户可以成为彼此的朋友. 哪种存储方法是理想的 方法A: >在USERS表中创建一个朋友字段.键入:TEXT 方法B: >制作友谊表 +------+---------------------+ | uid | friend_id | +------+---------------------+ | 1 | 2 | | 1 | 3 | | 1 | 4 | | 1 | 5 | +------+---------------------+ >如上所示,对于用户的每个朋友,我应该向表中插入一个新行. 这两种方法中哪一种可以?性能和优化. 提前致谢. 解决方法
根据
normalization theory,优选方法B.
方法A将有以下问题: >较慢,因为在大多数情况下字符串搜索需要更多时间,而整数比较更快. 它只是问题的冰山一角.如果用户表将位于数据库模式的中间(因为它经常发生),它将导致总数据库速度减慢.我的意思是,如果它将链接到很多其他表. 您可以从方法B轻松恢复方法A表示: SELECT `User`.`uid` as `user`,GROUP_CONCAT(`Friendship`.`friend_id`) as `friends` FROM `User` LEFT JOIN `Friendship` ON `User`.`uid` = `Friendship`.`uid` GROUP BY `User`.`uid` 但是,从方法A开始,获取方法B表示可能是一项复杂的任务.只需考虑一下. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |