存储朋友的每个用户列表的最佳方式

时间:2017-03-08 07:18:22

标签: sql-server database

我想在SQL Server数据库中存储朋友的每个用户列表。 我很困惑

  1. 我应该为每个用户使用表格,还是
  2. 我应该为每个人使用一张桌子,还是
  3. 还有其他最佳方式(我经常查询)吗?
  4. 当我查询时,如何获得单个用户的所有朋友?

4 个答案:

答案 0 :(得分:2)

当我们说SQL Server时,我们说的是RDBMS。

然后有normalization INF,2NF和3rdNF ......,这是如何规范用户及其朋友数据库的问题。

我的观点,你需要三张桌子

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<input type="checkbox" name="vehicle" value="5">5<br>
<input type="checkbox" name="vehicle" value="15">15<br>
<input type="checkbox" name="vehicle" value="25">25<br>
<input type="checkbox" name="vehicle" value="35">35<br>

<input type='text' id='txt1' value='0' />
<input type='text'  id='txt2' />

获取用户的所有朋友

Individual (IndId (PK), Name ...)
User (UserId (PK), IndId (FK to Individual Table), login, password etc)
Friends(FID(PK), UserId (FK to User Table), IndId (FK to Individual Table))

答案 1 :(得分:1)

我所做的是为所有 tbl_users 的列表创建的第一个表。然后为 tbl_friendslist 创建了另一个表。 tbl_friendslist 表的功能是存储用户表ex的id。用户10添加了用户11,数据将存储在 tbl_friendslist 表中,i用户ENUM标记用户11是否接受,拒绝了请求..

答案 2 :(得分:0)

你应该有2个表:

TBL_Users 将有User_ID

TBL_Friends 将有Friend_IDFriend_User_ID

相关性将介于TBL_Users.User_IDTBL_Friends.Friend_User_ID

之间

答案 3 :(得分:0)

你需要两张桌子。 用户(id,UserName,...) UserFriendShip(ID,ToUserId,FromUserId,RequestStatus,RequestStatusReason)

示例:我想和你成为朋友(我们是用户,所以用户表有我们的记录)

ToUserId:您的用户ID FromUserId:我的用户ID ResquestStatus:请求,接受或枚举值,因此在sql server中使用tinyint not int作为枚举值。 RequestStatusReason:这个区域非常重要。认为你第一次接受然后拒绝了我。这个区域将存储该细节。

指定您的必需品然后您可以自己设计它我只是想检查。