PDA

View Full Version : Xây dựng trang tin tức bằng CodeIgniter



penguine
06-05-2010, 00:55
Mình đang làm 1 đồ án về site tin tức bằng CodeIgniter,trong quá trình tạo database có 1 vài thắc mắc nên nhờ anh em giúp đỡ

Đây là table news của mình:

news(news_id,catalog_id,user_id,title,short,conten t,picture_title,picture_type,picture_des,adddate,s ource,viewnum,comment_num,is_display)

Mình mún làm phần những tin liên quan,tức là 1 tin sẽ có các tin liên quan đã dc viết trước đó.Nhưng mình chưa nghỉ ra sẽ thiết kế database thế nào,vì 1 tin có thể có rất nhiều tin liên quan,cho nên ko thể tao thêm 1 collumn để chứa cái news_id của tin liên quan dc,mong mọi người cho ý kiến giùm em

ngoc_viet08
06-05-2010, 01:10
tin liên quan là tin gì ? 1 số mẫu tin cùng viết về 1 chủ đề ? vậy thêm cột group , mặc định cho các bài viết mới là group =null , khi mún thêm tin liên quan thì tạo nên 1 group mới với 1 unique tên nào đó . nói chung nhiều cách .

nnanh01
06-05-2010, 08:33
Thông thường database cho news có 2 bảng là category và news.
Tin liên quan của bạn có thể là news cùng loại nằm chung 1 category.

Có cách nào hay hơn thì nói a e tìm hiểu

thuyduongcd
06-05-2010, 09:39
Trước tiên bạn cần định nghĩa thế nào là tin liên quan. Tin liên quan khác với tin cùng chủ đề. Có thể không cùng chủ đề nhưng vẫn liên quan.
Lấy ví dụ, bạn có 1 bản tin "Xét xử lưu động vợ chồng chủ trại tôm hành hạ cháu bé..." thuộc chủ đề tòa án còn tin khác "Cháu bé .... bị ngược đãi dã man" thuộc chủ đề thời sự. Hai tin này thuộc 2 chủ đề khác nhau nhưng vẫn liên quan nhau.

Sau khi xác định rõ rồi bạn mới thiết kế DB.
Hai ví dụ cho bạn tham khảo:
1/ Thêm cột relation như bạn dự định. Vấn đề là 1 tin có nhiều tin liên quan thì làm sao? Gộp tất cả các id liên quan vào chung 1 chuỗi, ngăn cách nhau bằng dấu phẩy, khi cần thì explode nó ra từng id riêng.
2/ Theo phương pháp wordpress đã làm, thêm 1 cột tag (hoặc keyword) vào bản tin. Khi đó những tin nào có cùng tag nghĩa là liên quan

penguine
06-05-2010, 21:55
Trước tiên bạn cần định nghĩa thế nào là tin liên quan. Tin liên quan khác với tin cùng chủ đề. Có thể không cùng chủ đề nhưng vẫn liên quan.
Lấy ví dụ, bạn có 1 bản tin "Xét xử lưu động vợ chồng chủ trại tôm hành hạ cháu bé..." thuộc chủ đề tòa án còn tin khác "Cháu bé .... bị ngược đãi dã man" thuộc chủ đề thời sự. Hai tin này thuộc 2 chủ đề khác nhau nhưng vẫn liên quan nhau.

Sau khi xác định rõ rồi bạn mới thiết kế DB.
Hai ví dụ cho bạn tham khảo:
1/ Thêm cột relation như bạn dự định. Vấn đề là 1 tin có nhiều tin liên quan thì làm sao? Gộp tất cả các id liên quan vào chung 1 chuỗi, ngăn cách nhau bằng dấu phẩy, khi cần thì explode nó ra từng id riêng.
2/ Theo phương pháp wordpress đã làm, thêm 1 cột tag (hoặc keyword) vào bản tin. Khi đó những tin nào có cùng tag nghĩa là liên quan

Đây là điều mình muốn hỏi đó, trong 2 trường hợp thì cách add thêm 1 cột relation với kiểu String vào thì hơi có cách bất tiện là phải add những id relation bằng tay lúc post tin, mình nghĩ cách 2 có lẽ là hay hơn nhỉ ,có ai có ý kiến khác ko :D .Thnks bạn thuyduongcd đã giúp mình

ngoc_viet08
06-05-2010, 22:45
Đây là điều mình muốn hỏi đó, trong 2 trường hợp thì cách add thêm 1 cột relation với kiểu String vào thì hơi có cách bất tiện là phải add những id relation bằng tay lúc post tin, mình nghĩ cách 2 có lẽ là hay hơn nhỉ ,có ai có ý kiến khác ko .Thnks bạn thuyduongcd đã giúp mình

cách trên cũng được , đâu nhất thiết phải nhập tay . ví dụ khi post 1 bài tin thứ 1 , rồi mún post bài tin thứ 2 liên quan tin 1 thì tìm kiếm ra bài tin thứ 1 ( làm 1 bộ search nhỏ ) rồi nó có nút , gửi tin liên quan , rùi dùng code xử lý ì xèo vô có chi đâu ?

tag thì liên quan nhưng độ rộng khá cao :D