我正在为一个新项目设计一个数据库。我遇到了一些麻烦。在我的设计中,我有两个表学生,教师。我想将他们的消息存储到消息表中。
1.student 2.faculty 3.Message
蓝色线定义哪个是用户表的外键。蓝色选择列是用户表的外键。
它基本上由具有这些能力的安全消息传递系统组成:
*每个学生都可以向对方发送消息。
*每个教师都可以向其他教员发送信息。
*学生和教师都可以互相发送信息。
1.我在如何实现学生,教师和留言表之间的关系方面遇到了困难。
2.保持它们在两个表中分开是对的?或者我如何实现它??
3.请告诉我如何改进设计及其关系而不是SQL代码。
我的完整设计在University Database Design.
答案 0 :(得分:0)
这是我的建议,
快乐的节目。
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) );