English 中文(简体)
B. 友谊会议最佳关键人物
原标题:Best Primary Key for a friendship table

我阅读了我sql Facebook友谊表的若干解决办法,并用两个领域用户_a和用户_b的相当简单的表格作出决定。 然后,我会利用一个“联合国设想”的问询,获得一份所有用户朋友的名单(因为用户可以是用户_a或用户_b)。 我现在的问题是,......在汽车中增加独一无二的补贴或复合补贴是否更好?

表1

用户_a,用户_b

表2

unique_id, 用户_a,用户_b

最佳回答

我的评论:

  • either approach for the key is fine. I would prefer a compound key over surrogate key to save space and avoid additional indexes
  • you may require a surrogate key though - some DALs do not work with compound keys

<>Update:

你可以认为,友谊是双向的。 仅仅因为用户协会友好用户B并不意味着用户B已经友好用户A。 如果你跟踪双方,就会使你的询问更加容易。 在这种情况下,请:

Friend
-------
UserID
FriendUserID

因此,你只是在用户信息数据库栏上配对,以获得用户朋友名单。 如果两个用户相互朋友,你将两行放在桌面上。 如果一名用户不友善,你就会把这段话删除。

问题回答

虽然从设计角度来说,复合关键解决办法似乎更为可取,而且从表面上看,空间消耗较少,但有些情况是,我个人很少去做自动加固的计算。

如果在其他地方提到友谊,那么从长远来看,它将节省更多的空间,在参考表中将单一数字识别作为外国钥匙,而不是复合识别。 此外,如果你经常在友谊指数上问话,单笔补助的指数(略为)将比复合指数短和更快。





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签