Iki yoldan hangisi Mysql içine etiketleri eklemek için kullanmak gerekir?

4 Cevap php

Her reklam için, ben kullanıcıların 5 etiketleri kadar seçmek için izin verir. Şu anda, benim veritabanında, I like it var ...

Posting_id     TagID
    5            1
    5            2 
    5            3
    6            5
    6            1

I like it yapmak gerekir ama eğer ben düşünüyordum ...

    Posting_id     TagID
    5              1 2 3 
    6              5 1

Sonra İlk seçenek veri eklemek ve almak için çok daha kolaydır. Ben 3 etiketleri her ile 100 mesaj varsa Ama, bu 300 satır ... yani ÇOK fazla satır var

İkinci seçenek patlayabilir kullanarak gerektirir () impode (), vb ama çok temizdir.

Hangi seçenek neden yapmak ve gerekir? teşekkürler!

EDIT: ilk yolu daha iyidir!

4 Cevap

İkinci seçenek zor etkili TagID sütun indeksi yapar çünkü ilk seçeneği kullanabilirsiniz. Hiç TagID sütunda depolanan belirli bir sayısal değeri için verilerinizi sorgulamak istiyorsanız (ve ben olacak bahse girerim) ise, ikinci seçenek dışında kötü performansı alırsınız.

Bunu ilk yolu yapmak. Satırlar ucuz ve mysqsl satır milyonlarca ve milyonlarca tabloları işleyebilir. Ayrıca, bunu ilk yolu yapıyor tablo ile gelecekteki iş çok (yaparken katılır, örneğin ve yabancı anahtarlar atıfta) kolaylaştırabilir bir tamsayı, gibi o kimliği tutar.

Birincisi. Bunu fark edeceksiniz "tüm bu etiketleri ile konu değil bu diğer Toplamı" zorunda.

İkinci yöntem veritabanı normalleştirme 1 kuralı bozmaktadır.