10/10/2018, 11:35

[PHP] Hỏi cách thêm nhiều Categories cho 1 Post

Mình vừa học xong lớp PHP và đang làm đề tài, nhưng đến đoạn này bí quá không biết giải quyết thế nào, mong các anh chị em bỏ chút thời gian giải đáp dùm.

Ví dụ ta có 1 bộ phim với tên là "Doraemon" và muốn nó có 2 diễn viên là "Nobita" và "Xuka". Nhưng không biết phải giải quyết thế nào để khi add vào SQL nó là 2 diễn viên với 2 ID khác nhau ở 1 table khác chứ không phải là mình gõ trực tiếp tên 2 diễn viên đó vào chung với cột của phim "Doraemon"

Ví dụ cho dễ hiểu:
Tên: Doraemon
Diễn viên: Nobita, Xuka <== làm sao để 2 diễn viên này có 2 ID khác nhau để click vào

Xin hướng dẫn cách bố trí và liên kết thế nào trong SQL.

Chân thành cảm ơn !
banbe.info viết 13:43 ngày 10/10/2018
xin hướng dẫn qua cho bạn ntn,
Bạn có 2 cách bố trí SQL... nhưng mà về cơ bản thì giống nhau
Chung:
table Categories sẽ có G_id, G_name
table Movie sẽ có M_id, M_name,...(và nhiều col khác)

Cách 1: Không tách ra bảng quan hệ mà chỉ thêm 1 cột. Bạn tạo thêm cột G_id trong cột này bạn lưu các G_id theo các array, phân tách bằng gì thì tùy bạn,.
Ví dụ: 123 | Chúa tể những chiếc nhẫn | 2,3
thì 2,3 sẽ là id của 2 Categories mà phim đó thuộc vào. Lúc lấy Categories ra thì bạn phải làm 1 động tác split để lấy tiếp G_id và select Name của Categories

Cách 2: bạn tạo thêm 1 table mới gồm
G_id; M_id
Lúc select quan hệ thì bạn sẽ select từ table mới này và kết quả trả về là id của từng Categories

Hy vọng giúp đc bạn chút gì.
trungvn.info viết 13:49 ngày 10/10/2018
Được gửi bởi banbe.info
xin hướng dẫn qua cho bạn ntn,
Bạn có 2 cách bố trí SQL... nhưng mà về cơ bản thì giống nhau
Chung:
table Categories sẽ có G_id, G_name
table Movie sẽ có M_id, M_name,...(và nhiều col khác)

Cách 1: Không tách ra bảng quan hệ mà chỉ thêm 1 cột. Bạn tạo thêm cột G_id trong cột này bạn lưu các G_id theo các array, phân tách bằng gì thì tùy bạn,.
Ví dụ: 123 | Chúa tể những chiếc nhẫn | 2,3
thì 2,3 sẽ là id của 2 Categories mà phim đó thuộc vào. Lúc lấy Categories ra thì bạn phải làm 1 động tác split để lấy tiếp G_id và select Name của Categories

Cách 2: bạn tạo thêm 1 table mới gồm
G_id; M_id
Lúc select quan hệ thì bạn sẽ select từ table mới này và kết quả trả về là id của từng Categories

Hy vọng giúp đc bạn chút gì.
Cảm ơn bạn, cách 2 có vẻ đơn giản hơn nhưng mà cũng có nhược điểm là nếu mình có thêm thể loại, diễn viên, tag... nữa thì có lẽ sẽ có rất nhiều table và column để quan hệ với nhau, như thế thì 1 post sẽ có tới 2, 3 cột ở thể loại; 2, 3 cột ở diễn viên và 4, 5 cột ở tag nữa... có lẽ nếu nhiều post thì database sẽ rất nặng.

Còn cách 1 thì không cần tạo nhiều table và column nhưng mà mình vẫn chưa hiểu lắm , thuật toán phức tạp quá, để mình nghiên cứu lại xem sao. Nếu vẫn không làm được thì có lẽ sẽ phải dùng cách 2.

Cảm ơn bạn nhiều ^^
banbe.info viết 13:38 ngày 10/10/2018
Bạn có thể sáng tạo mà.
Thay vì tạo nhiều table thì bạn tạo thêm type relationship là ổn.
Và cách 2 mới là cách mà những mã nguồn mới áp đụng chứ không phải cách 1. Nếu bạn để ý thì WP cũng sử dụng mô hình này. Mình cũng thích cái này hơn, Cách 1 thì giống flat file quá
trungvn.info viết 13:37 ngày 10/10/2018
Được gửi bởi banbe.info
Bạn có thể sáng tạo mà.
Thay vì tạo nhiều table thì bạn tạo thêm type relationship là ổn.
Và cách 2 mới là cách mà những mã nguồn mới áp đụng chứ không phải cách 1. Nếu bạn để ý thì WP cũng sử dụng mô hình này. Mình cũng thích cái này hơn, Cách 1 thì giống flat file quá
Nhờ bạn nói nên mình mới cài WP lại và nghiên cứu, công nhận cách nó làm đơn giản mà hiệu quả thật, số table của nó còn ít hơn của mình . Trước giờ chỉ install rồi dùng thôi, chưa bao giờ đụng đến database của nó, nay nhờ bạn gợi ý mới thấy đc cái hay.

Một lần nữa cảm ơn nhiều
banbe.info viết 13:43 ngày 10/10/2018
không có gì.
Nếu ko ngại thì có thể add nick mình
star-secret
Khi nào cần anh em học hỏi kinh nghiệm
trungvn.info viết 13:40 ngày 10/10/2018
Được gửi bởi banbe.info
không có gì.
Nếu ko ngại thì có thể add nick mình
star-secret
Khi nào cần anh em học hỏi kinh nghiệm
ok, khi nào cần sẽ pm bạn, nhưng sợ phiền thôi vì mới học nên còn nhiều cái thắc mắc mà hỏi bác Google thì ko ra nên ko biết hỏi ai
GrouponClone viết 13:43 ngày 10/10/2018
wordpress đi bạn, nó khá là tốt.
trungvn.info viết 13:44 ngày 10/10/2018
Được gửi bởi GrouponClone
wordpress đi bạn, nó khá là tốt.
ý bạn là gí???, không đọc kỹ để bài à??? đúng là VTC
GrouponClone viết 13:47 ngày 10/10/2018
sao không đọc bạn.

Ý mình nói là khuyên chủ thớt dùng wordpress,vì trong đó đã xữ lý hết yêu cầu của chủ thớt rồi.
Bài liên quan
0