2014-09-04 31 views
0

我正在爲新項目設計數據庫。我遇到了一些麻煩。在我的設計中,我有兩張桌子的學生,教師。我想將他們的消息存儲到消息表中。多用戶消息傳遞架構設計

1.student 2.faculty 3.Message

Multi user messaging schema design

藍色線限定,這是用戶表的外鍵。藍色選擇列是用戶表的外鍵。

它基本上包括安全郵件系統與能力:

*每個學生都可以發送郵件的每個人的學生。

*每個教員都可以發送消息給對方教師。

*學生和教師都可以互相發送信息。

1.我在如何實現學生,教師和消息表之間的關係方面遇到困難。

2.把它們分開放在兩張桌子上是對的?或我如何實現它?

3.please建議我如何改進設計及其與SQL代碼的關係。

我的完整的設計在這裏University Database Design.

+0

所以,每個人都可以發送消息給其他人?我不確定我看到了問題。 – paqogomez 2014-09-04 03:10:55

+0

@paqogomez我沒有在這裏實現任何關係,請檢查屏幕簡短。 – Joynal 2014-09-04 03:16:58

+0

我還是不明白,你是否在尋找一個sql查詢來顯示每個用戶的消息?你想知道放在桌子上的限制嗎?你有什麼要求? – paqogomez 2014-09-04 03:32:50

回答

0

這裏是我的建議,

  1. 添加一個新的表調用用戶,全部採取類似列從教師和學生擺在那。
  2. 指出您的表格教師和學生的外鍵。這將是你在看的關係。
  3. 在你的消息表中添加另一列引用uid的消息表,你的消息表必須有發送者和接收者嗎?否則你不會知道這個消息是爲了誰。
  4. 指向用戶表和消息表的發送者/接收者與uid的外鍵。這是你試圖得到的另一種關係。
  5. 查看錶格系統中的通知和消息列,不確定他們仍然需要,所以我只保留它。

快樂的編程。

CREATE TABLE user (
       uid VARCHAR(15) NOT NULL, 
       first_name VARCHAR(20) NOT NULL, 
       last_name VARCHAR(20) NOT NULL, 
       nick_name VARCHAR(10) NOT NULL, 
       genere VARCHAR(6) NOT NULL, 
       email VARCHAR(50) NOT NULL, 
       facebook VARCHAR(50) NOT NULL, 
       mobile INT NOT NULL, 
       image VARCHAR(100) NOT NULL, 
       cv VARCHAR NOT NULL, 
       PRIMARY KEY (uid) 
); 



CREATE TABLE Message (
       Message_id BIGINT NOT NULL, 
       sender VARCHAR NOT NULL, 
       receiver VARCHAR NOT NULL, 
       text VARCHAR NOT NULL, 
       send_date_time DATE NOT NULL, 
       PRIMARY KEY (Message_id) 
); 


CREATE TABLE faculty (
       fid VARCHAR(15) NOT NULL, 
       designation VARCHAR(50) NOT NULL, 
       notification VARCHAR NOT NULL, 
       message VARCHAR NOT NULL, 
       PRIMARY KEY (fid) 
); 

CREATE TABLE student (
       sid VARCHAR(15) NOT NULL, 
       batch TINYINT NOT NULL, 
       cgpa DOUBLE PRECISIONS NOT NULL, 
       PRIMARY KEY (sid) 
); 
+0

您沒有提到代碼中的關係。 – Joynal 2014-09-04 06:28:01

+0

檢查我的2,4,在那裏我指出哪個列使用,語法明智,你應該能夠做到這一點自己的權利? – 2014-09-04 06:32:19

+0

我不明白你的意思是什麼樣的關係。在步驟2中,用於表格教師和學生的外鍵? – Joynal 2014-09-04 08:56:09