Giả sử tôi có Tutors
người mất online webclasses
và tạo learning packs
. Cả hai online webclasses
và learning packs
đều có thể được xếp hạng theo số students
và cuối cùng là xếp hạng tutor's
là mức trung bình đơn giản của tất cả các xếp hạng trên số classes
và packs
của bạn.Mysql - Một câu hỏi thiết kế cơ sở dữ liệu đơn giản
Đây là kiến trúc bảng Ratings
bảng hiện tại của chúng ta -
CREATE TABLE IF NOT EXISTS `Ratings` (
`id_rating` int(10) unsigned NOT NULL auto_increment,
`id_teacher` int(10) unsigned default NULL COMMENT 'the teacher who created the class/pack',
`id_lp` int(10) unsigned default NULL COMMENT 'the id of the learning pack',
`id_wc` int(10) NOT NULL default '0' COMMENT 'the id of the webclass',
`id_user` int(10) unsigned NOT NULL default '0' COMMENT 'the user who has rated',
`rate` int(10) unsigned NOT NULL default '0',
`cdate` timestamp NOT NULL default CURRENT_TIMESTAMP,
`udate` timestamp NULL default NULL,
PRIMARY KEY (`id_rating`),
KEY `Ratings_FKIndex1` (`id_user`),
KEY `id_lp` (`id_lp`),
KEY `id_wc` (`id_wc`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Hiện nay, cả lớp và đóng gói xếp hạng được nhập vào cùng một bảng (id_wc
và id_lp
được nhập phù hợp - một được nhập và thứ hai là NULL
cho mọi bản ghi xếp hạng).
Vì vậy, câu hỏi của tôi là -
là kiến trúc này đúng hay là nó tốt hơn để giữ class
và pack
xếp hạng riêng biệt? Tại sao hay tại sao không? Tôi cần chính xác số lượng cùng một trường Rating
bảng cho cả hai xếp hạng class
và pack
.
Tôi đoán, Nếu xếp hạng lớp học và gói được tìm thấy riêng, thì các bảng riêng biệt sẽ giảm số lượng bản ghi được tìm kiếm. Tuy nhiên, vì trong trường hợp của chúng tôi chỉ cần có các xếp hạng gia sư (bao gồm cả lớp học và các gói), đó là lý do tại sao tất cả các xếp hạng được xếp vào nhau.
Sử dụng bàn làm việc mySQL thậm chí nó được tạo bởi các nhà phát triển mysql. –