嘿傢伙我有一個令人困惑的問題,我有一個用戶表,它存儲了用戶所需的所有常用數據,但我試圖弄清楚用戶如何添加其他用戶?關係混淆
聽起來很奇怪,但User表中的每個用戶都有自己的UI,它是UserID我怎麼能添加另一個表,其中UserID可以與另一個UserID有關係?
我會給出答案的那些可以花時間上傳表圖,以及誰可以用一些例子爲sqlsyntax與此相關的問題,即幫助我將如何正確的語法以上問題是否想要在頁面上顯示所有的用戶ID朋友。我將如何添加一個朋友。
嘿傢伙我有一個令人困惑的問題,我有一個用戶表,它存儲了用戶所需的所有常用數據,但我試圖弄清楚用戶如何添加其他用戶?關係混淆
聽起來很奇怪,但User表中的每個用戶都有自己的UI,它是UserID我怎麼能添加另一個表,其中UserID可以與另一個UserID有關係?
我會給出答案的那些可以花時間上傳表圖,以及誰可以用一些例子爲sqlsyntax與此相關的問題,即幫助我將如何正確的語法以上問題是否想要在頁面上顯示所有的用戶ID朋友。我將如何添加一個朋友。
您只需要另一張類似於圖片和牆紙表的表格。你只需要能夠錄製了許多朋友的ID爲一個用戶ID(一對多)
如:
的查詢然後讓朋友將是:
DECLARE @UserID AS BIGINT
SET @UserID = 123
SELECT [friends].*
FROM [friends]
where [parentuserid][email protected]#
插入一個朋友:
DECLARE @UserID AS BIGINT
DECLARE @FriendID AS BIGINT
SET @UserID = 123
SET @FriendID = 321
INSERT INTO [Friends]
(
[ParentUserID],
[ChildUserID]
)
VALUES
(
@UserID,
@FriendID
)
代碼中插入它例如:
private void Test()
{
string Query =
@"INSERT INTO [Friends]
(
[ParentUserID],
[ChildUserID]
)
VALUES
(
@UserID,
@FriendID
)";
using (SqlConnection oSqlConnection = new SqlConnection("connect string"))
{
oSqlConnection.Open();
using (SqlCommand oSqlCommand = new SqlCommand(Query,oSqlConnection))
{
oSqlCommand.Parameters.AddWithValue("@UserID", Session["UserID"]);
oSqlCommand.Parameters.AddWithValue("@FriendID", Session["FriendID"]);
oSqlCommand.ExecuteNonQuery();
}
}
}
你從哪裏得到你的朋友ID?什麼是添加朋友的過程?你會搜索它們並從列表中選擇它們嗎?
我認爲你有一個用戶引用其他用戶加入一個簡單的要求。如果是這種情況,那麼您可以簡單地在User
表中添加一列ReferenceUserID
,並且每當新用戶引用另一個用戶時,只需將他添加到引用用戶的UserID
即可。如果他不是被推薦的用戶,那麼默認情況下它將是NULL
。
稍後檢索,您可以使用自我加入。
更新:
對於朋友(多對多的關係),你應該看看在StackOverflow上
Database design: Best table structure for capturing the User/Friend relationship?
UserRelationship
====
RelatingUserID
RelatedUserID
Type[friend, block, etc]
類似的方法是使用Facebook的,他們有以下問題朋友之間關係的一種交叉連接表。
我認爲他希望能夠添加好友,而不僅僅是存儲用戶將他們引用到網站。但這並不完全清楚。你建議1:1的關係,我認爲他需要很多關係。 – NerdFury 2011-03-31 14:54:46
OP的問題不清楚......還有很多其他答案解釋了另一方面(m2m rel),所以我沒有包括這一點。 – 2011-03-31 15:05:20
你只需要一個多對多的關係。
Create Table Friend(
UserId int,
FriendId int,
Constraint pk_friends Primary Key (UserId, FriendId),
Constraint fk_friend_user Foreign Key (UserId) References User(UserId),
Constraint fk_friend_friend Foreign Key (FriendId) References User(UserId)
)
你對圖表等問題稍微有點....至少對我來說。
這取決於一對一的關係類型,它將成爲用戶表中的另一個列。如果它很多很多,你需要一個聯結表,有兩列UserIDA,UserIDB。取決於你爲什麼需要這種關係。
是否需要'FriendID'? – 2011-03-31 14:57:02
所以ParentUserID是當前的用戶ID和childuserid是你添加的用戶ID? – 2011-03-31 14:57:57
@Chris - 不,但我總是在我的桌子上有一個主鍵。 – WraithNath 2011-03-31 14:58:29