Relatedcách để triển khai thẻ - ưu và nhược điểm của mỗi
Sử dụng SO làm ví dụ, cách hợp lý nhất để quản lý thẻ nếu bạn dự đoán họ sẽ thay đổi thường xuyên là gì?
Cách 1: Nghiêm túc denormalized (dấu phẩy phân cách)
table posts +--------+-----------------+ | postId | tags | +--------+-----------------+ | 1 | c++,search,code |
Đây thẻ được Comma delimited.
Ưu điểm: Thẻ được truy lục cùng một lúc bằng một truy vấn select
. Việc cập nhật thẻ rất đơn giản. Dễ dàng và rẻ tiền để cập nhật.
Nhược điểm: Phân tích cú pháp bổ sung khi truy xuất thẻ, khó đếm số lượng bài đăng sử dụng thẻ nào.
(cách khác, nếu giới hạn trong một cái gì đó giống như 5 thẻ)
table posts +--------+-------+-------+-------+-------+-------+ | postId | tag_1 | tag_2 | tag_3 | tag_4 | tag_5 | +--------+-------+-------+-------+-------+-------+ | 1 | c++ |search | code | | |
Way 2: "Hơi bình thường" (bảng riêng biệt, không có ngã tư)
table posts +--------+-------------------+ | postId | title | +--------+-------------------+ | 1 | How do u tag? | table taggings +--------+---------+ | postId | tagName | +--------+---------+ | 1 | C++ | | 1 | search |
Ưu: Dễ dàng để xem số lượng thẻ (count(*) from taggings where tagName='C++'
).
Nhược điểm: tagName có thể sẽ được lặp lại nhiều lần, nhiều lần.
Way 3: Các bé mát mẻ của (bình thường với bàn giao)
table posts +--------+---------------------------------------+ | postId | title | +--------+---------------------------------------+ | 1 | Why is a raven like a writing desk? | table tags +--------+---------+ | tagId | tagName | +--------+---------+ | 1 | C++ | | 2 | search | | 3 | foofle | table taggings +--------+---------+ | postId | tagId | +--------+---------+ | 1 | 1 | | 1 | 2 | | 1 | 3 |
Ưu:
- Không lặp lại tên thẻ.
- Nhiều cô gái khác thích bạn.
Nhược điểm: Đắt tiền hơn để thay đổi thẻ so với cách # 1.
Tôi sẽ gửi email/twitter người đã phải quản lý thẻ trước bạn. Giống như Jeff Atwood hoặc một trong những nhà phát triển SO khác. Họ có thể đưa ra một số hiểu biết. –
âm thanh với tôi như bạn vừa trả lời câu hỏi. Vì vậy, chỉ cần chọn một trong đó phù hợp nhất với yêu cầu của bạn. Nếu bạn muốn các cô gái thích bạn thì hãy đi # 3. – mdma
Nhiều cô gái sẽ thích bạn, eh? Tôi thích sự lựa chọn đó! – Tarka