@minhtuancnttk39 Để làm chức năng tags với việc có thể gắn nhiều tags cho một bài viết thì em cần thiết lập quan hệ n-n giữa bảng tags và bảng posts. Tức 1 tag có thể có nhiều posts và 1 post có thể có nhiều tag.
Em chỉ cần thêm một bảng trung gian là post_tag, lưu post_id và tag_id là được.
Khi người dùng nhập nhiều tag cho một bài viết, em sẽ kiểm tra xem tag đó đã tồn tại hay chưa, nếu chưa thì tạo mới ra, và insert bản ghi mới vào bảng trung gian post_tag là được.
Đó là về kiến trúc server, còn về thực hiện ở client (trình duyệt) thì em có thể package như type ahead tag input
@thangtd90 Dạ, e biết ạ, e chỉ cho 2 tầng thôi ạ.. còn lại mình sẽ quote theo username của người mình luận cần quotes..
Anh cho em hỏi nốt luôn ạ. Làm thế nào để có thể tags nhiều tags cho một bài viết ạ. Mong a giúp được ạ, tại e đang hoàn thành các bước chuẩn bị cho một website.
với ví dụ 3. Hôm nay có phải cuối tuần không vậy ?, bạn có thể tìm hiểu thêm về cách khởi tạo Hash với giá trị mặc định khi lấy ra phần tử với key chưa có trong hash, dùng cách đó sẽ không phải dùng trick || nữa
@minhtuancnttk39 Cũng không phải là quá nhiều đâu, nhưng đúng là nếu viết SQL không cẩn thận sẽ phải sử dụng nhiều câu queries mới lấy hết dữ liệu được.
Em có thể làm theo cách lấy comment theo post ra rồi xử lý ở tầng PHP hay Ruby, Java của mình, thay vì dùng các câu lệnh join tầng tầng lớp lớp. Sau đó thì cũng chỉ là chạy một vài vòng for để sắp xếp lại comments thôi mà.
Ngoài ra em cũng có thể tính đến việc hạn chế lại số tầng comment, như chỉ cho phép reply 2 tầng (reply lại reply của một comment), sau đó thì không cho reply nữa chẳng hạn
@thangtd90 Dạ, e hiểu cái đó ạ, e cũng nghĩ đến cái đó rồi... Nhưng mình process một núi như thế liệu có làm server bị chậm không a? E chỉ thắc mắc thôi ạ.
THẢO LUẬN
@thangtd90 Dạ anh, từ tối qua đến giờ e code nguyên cái này... thấy thật là tỏa.. hehe
@minhtuancnttk39 Để làm chức năng
tags
với việc có thể gắn nhiềutags
cho một bài viết thì em cần thiết lập quan hện-n
giữa bảngtags
và bảngposts
. Tức 1 tag có thể có nhiều posts và 1 post có thể có nhiều tag.Em chỉ cần thêm một bảng trung gian là
post_tag
, lưupost_id
vàtag_id
là được.Khi người dùng nhập nhiều tag cho một bài viết, em sẽ kiểm tra xem tag đó đã tồn tại hay chưa, nếu chưa thì tạo mới ra, và insert bản ghi mới vào bảng trung gian
post_tag
là được.Đó là về kiến trúc server, còn về thực hiện ở client (trình duyệt) thì em có thể package như type ahead tag input
@thangtd90 Dạ, e biết ạ, e chỉ cho 2 tầng thôi ạ.. còn lại mình sẽ quote theo username của người mình luận cần quotes..
Có những bài post quá xàm
bổ sung thêm mấy cái này đi ông
hóng phần 3
Đầy đủ dễ hiểu hơn tài liệu gốc rồi Nhanh có phần 2 đi thím ơi. Many thanks!
Cảm ơn bạn. Nãy mình tìm hoài không có cách nào nên đành phải làm thế . Tại trước min dùng enum :V
với ví dụ
3. Hôm nay có phải cuối tuần không vậy ?
, bạn có thể tìm hiểu thêm về cách khởi tạo Hash với giá trị mặc định khi lấy ra phần tử với key chưa có trong hash, dùng cách đó sẽ không phải dùng trick||
nữaCám ơn bạn. Bài viết rất bổ ích cho mình.
bài này đọc có cảm giác như google dịch vậy
mình đóng góp cách đệ quy
1000k = 1000.000 phải không nhỉ :v
@minhtuancnttk39 Cũng không phải là quá nhiều đâu, nhưng đúng là nếu viết SQL không cẩn thận sẽ phải sử dụng nhiều câu queries mới lấy hết dữ liệu được.
Em có thể làm theo cách lấy comment theo post ra rồi xử lý ở tầng PHP hay Ruby, Java của mình, thay vì dùng các câu lệnh join tầng tầng lớp lớp. Sau đó thì cũng chỉ là chạy một vài vòng for để sắp xếp lại comments thôi mà.
Ngoài ra em cũng có thể tính đến việc hạn chế lại số tầng comment, như chỉ cho phép reply 2 tầng (reply lại reply của một comment), sau đó thì không cho reply nữa chẳng hạn
thanks bro
bài viết hay đấy ạ. thank so much
@thangtd90 Dạ, e hiểu cái đó ạ, e cũng nghĩ đến cái đó rồi... Nhưng mình process một núi như thế liệu có làm server bị chậm không a? E chỉ thắc mắc thôi ạ.
cái này viết giống window form của .NET phải ko vậy ban.
Thú vị quá
hehe, vui thôi