A. 好友關系資料庫怎麼設計的
好友關系是雙向的:user1 > user2與 user2 > user1是重復的。目前業務很簡單就是好友關系。預想4個欄位解決:id(自增)to_user(添加用戶)
form_user(被添加用戶)relation(用戶關系)0:好友 1:拉黑但是還是想來問問看,想多了解一下相關的思路。
B. 【 資料庫設計】好友關系表該如何去設計
單獨設計一張表
兩肢慶迅個欄位 我的id (差粗local_user_id) 好友的id(remote_user_id) 編號(rela_id)可有可無歷此
C. 好友列表資料庫設計
3種解決方法,也談談這三種的弊端吧!
方法:
一.每創建一個用戶.自動創建一個該用戶的好友用戶表.每一行的記錄是一個好友記錄.
二.做一個Frient的表,表中有兩列,第一列UID是用戶ID,第二列FID是對應該用戶的好友
三,在用戶信息的表中,有一個欄位10000長度的varchar 里邊用','號分割各個好友的ID
弊端:
一:只適合少量的用戶論壇,如果有100萬個注冊用戶,就得有100萬張好友表,這樣當用戶一多,資料庫會很大!
二:這種方法是給用戶注冊表創建一張好友關聯表,這樣或許是這三種方法中最好的方式了吧,但是注意記得要添加索引,不然查詢起來,數據一多,會非常慢;
三、這樣在程序方面會比較麻煩,先取出來,後添加數據,再update,感覺速度會上不來...........
D. 類似qq加好友的功能資料庫應該怎麼設計比較合理
建議建2個表
個人表user
(id,qq)id
為序列,qq為存渣咐梁放你自己的qq號碼,這樣你有幾個qq號簡汪就有幾列
好友表friend
(id,friend_qq,userid)id同樣為序列,為以後業務擴充做准備,friend_qq
為好友的qq號如運,userid為個人表
user
的id,
這樣2表通過userid連接,
如
select
*
from
friend
b,user
a
where
a.id=b.userid
and
a.qq=?????
就可以查出你的某個qq號對應的所有好友
E. mysql 好友關系如何設計合理
在多的一方增加 一 的一段擾簡方的id,例李老如 A 有 n 個好友,則在好友表(friends)中,握褲增加一個欄位用於存放A的id,則可以通過下列語句查詢到A的所有好友:
select * from friends where Aid = ?
F. 關於 QQ 好友資料庫設計
針對sql server資料庫來說(sql server比mysql好一些,比oracle差),如果有一個萬個用戶就一萬張表。資料庫對表數量的支持也是有限制的。
並且創建表需要有相應的級別比較高的許可權,如果每注冊一個用戶就新建一張表,用戶的許可權太高了。
再次,按照你的說法,一個人假設有1000個好友,每個表也就1000條數據,相對於資料庫來說,這個存儲量是相當小的,沒有發揮到很好的性能。sql server資料庫幾百萬萬條數據是沒問題的。
最後,這樣查詢可能會帶來方面之處,但是如果用到了存儲過程,復雜的聯合查詢等(這些都是在資料庫中常用的),你這樣做就很難完成了。
所以,為何不把這些數據集中到一張表裡面呢?
G. 資料庫設計用戶表
1、首先設計一張用戶表,有用戶信息,方便注冊(用戶ID,用戶姓名,用戶性別。。)等一些基本信息;
2、設計一張題目表,欄位有題目ID、題目內容
3、設計一張答案表,如果是選擇題,設計的欄位為答案ID、題目ID、答案選項、選項滑耐內容;如果是簡答題,設計的欄位為答案ID、題目ID、答案內容
4、設計一張用戶答題表,設計的欄位為ID(自增長列或者隨機函數)啟斗、用戶ID、題目ID、用戶答題內容或者選擇選項、用戶答題時間、用戶答題狀態(狀態表示是否答對,如果是0則是沒答對,1則是答對)
5、在用戶答題表中,用戶答題狀態可默認為null,當用戶答完題目後點擊提交時,就由系統自動批閱,同時查詢題目表、答案表、用戶答題表查詢是否正確答案和用戶答案是否一致,如果一直的話就將用信旁春戶答題表中的用戶答題狀態更新為1,否則更新為0。
6、記錄答題順序的話,就可根據用戶答題表中的用戶答題時間來記錄排序。
H. 怎樣在mysql中設計好友關系庫表
1.建立用戶信息表
create table userinfo(id int(4) not null primary key, name varchar(20) not null unique key)engine=innodb default charset=utf8;
2.建立好友關系表
create table friend(uid int(4) not null, foreign key(uid) references
userinfo(id),fid int(4) not null, foreign key(fid) references
userinfo(id),unique key(uid,fid))engine=innodb default charset=utf8;
3.追加測試數據(滿足uid<fid條件)
insert userinfo values(1111---9999,'namea---namei』);
insert friend values(1111,4444---6666);
insert friend values(5555,6666---9999);
4.查詢好友(5555的好友)
select * from friend where uid=5555 or fid=5555;
+-------+------+
| uid | fid |
+-------+------+
| 1111 | 5555 |
| 5555 | 6666 |
| 5555 | 7777 |
| 5555 | 8888 |
| 5555 | 9999 |
+-------+--------+
5.問題:
5.1.userinfo中的id和name不為null,且不可重復:table設計可以做到
5.2.friend中的uid和fid均不為null,且都來自於userinfo的id:table設計可以實現
5.3.(uid,fid)組合不可重復:table設計可以完成世啟啟
5.4.好友關系的表達時,(1111,5555)和(5555,1111)有冗餘,也會出現(1111,1111)這樣的數據:這個在table設計實現比較搜如麻煩,需要在程序層面實現,也即增加限制條件uid<fid即可
6.結果:
table設計達不到要求,或者較難達到要求時,可以旁爛在程序層面予以彌補。
I. 資料庫表設計 QQ好友間的多對多關系
1.用戶表
列:id, 姓名, 等
2.分組表
列:id, 組名, 用戶id
3.好友表
列:id, 好友id, 分組id
示例:
1.用戶1 創建新早卜分組"我的好友"
INSERT INTO 分組表 (組名, 用戶id) VALUES('我的好友陸州穗', 1);
2.用戶1 將 用戶2 添加到"我的好友"
INSERT INTO 好友表 (好友id, 分組id) VALUES(2, (SELECT id FROM 分組表 WHERE 組名='我的好友跡雀' AND 用戶id=1))
3.查詢 用戶1 "我的好友" 分組下的全部好友
SELECT id, 姓名 FROM 用戶表
WHERE id IN(
SELECT id FROM 好友表 JOIN 分組表 ON 好友表.分組id=分組表.id
WHERE 分組表.組名='我的好友' AND 分組表.用戶id=1
)
J. 聊天系統的好友列表資料庫如何設計
對於關系資料庫,可以設一個這樣的欄位,這個欄位里存放了李四的所有好友,每個好友以「,」分隔;
對於非關系資料庫,比如說健值消岩資料庫,可以使用一個大型的HASH表來拿衡御存放,攔洞李四的所有好友以一個鏈接的方式串起來 。
比如:
linker表示鏈接
hash(李四)=linker(王五、張三、黃光、李明)