如何建立正确的朋友系统?

时间:2017-05-13 14:39:56

标签: php mysql database-design

我有这张桌子。它工作得很好,但看起来很糟糕:

id | username      | friend
-----------------------------------------------
1  | kayover       | random_user, random_user_2
2  | random_user   | kayover, random_user_3
3  | random_user_2 | random_user_3

我怎样才能拥有更有条理的表格,至少看起来像这样?:

cmd /v:on /c "@for /f "tokens=1,* delims=[]" %a in ('dir /b /a-d^|find /n /v ""') do @set /a "x=%a %5">nul&@if !x!==0 @echo %a: %b"

P.S。朋友可能不是相互的,友谊的要求就会丢失。

2 个答案:

答案 0 :(得分:0)

根据您的表格的第一范式,

id | username      | friend
-----------------------------------------------
1  | kayover       | random_user, random_user_2
2  | random_user   | kayover, random_user_3
3  | random_user_2 | random_user_3


id   | friend
----------------------------------
1    | random_user
1    | random_user_2
2    | kayover
2    | random_user_3
3    | random_user_3

在数据库管理中,您需要以最佳的方式保持数据库的效率。

您可以在此链接click here

上关注更多内容

答案 1 :(得分:0)

您可以轻松获得"有组织的" SELECT期间使用GROUP_CONCAT

SELECT username, GROUP_CONCAT(friend) AS friends
    FROM `awful`;