Ben bir soru inşa atanmış & oldum cevaplar benim şirket için Widget. Şirketin birçok farklı bölümlerinden çeşitli web sitelerinde bu widget kullanmak için ve onlar özel ve benzersiz ölçütlere dayalı sorular filtre isteyeceksiniz isteyecektir.
Burada savaş verimliliği vs ölçeklenebilirlik.
Should I:
A) Her kriterlere göre veritabanında benzersiz haritalama tabloları yap? Örneğin:
table questions (q_id,q_question,q_details,q_poster...)
table questions_criteria_a (q_id,criteria_a.id)
table questions_criteria_b (q_id,criteria_b.id)
table questions_criteria_c (q_id,criteria_c.id)
Bu soruların DAN q SOL vs .... questions_criteria_a QCA ON q.q_id = qca.q_id LEFT JOIN JOIN * Beni SEÇ sağlayacak ..
O benim sorunum her departman için gerekli kriterler aslında ya gelecekte ne olabilir hiçbir fikrim var - ki ben yeni bir tablo yeni kriterler sunulan her zaman eklemeniz gerekir anlamına gelecektir. Kriterlerden örnekler vb eyalet, şehir, konu, satıcı anahtar olabilir Onlar bir satıcı ile ilgili tüm soruları görüntülemek ve San Jose, CA alakalı, örneğin isterim. Kriterlerden herhangi, bütün, ya da hiçbiri sorgu başına gerekli olacak - bu mantığı getiriliyor kendi verilerini kod bölümlere kadar olacaktır.
B) Her bölüm bir json dize veya seri veri olarak sorular tablosunda saklanır mantığı işaretleme kriterlerini sağlamak var. Örneğin:
table questions (q_id,question,q_details,q_poster,q_criteria...)
-- the criteria would look like {'state':'CA','city':'San Jose','vendor_key':'13144'}
Yani, (B) bariz avantajı veri depolama mantık ölçeklenebilir ve tutarlı olmasıdır - (A) bariz avantajı sorguları "% 'kent' GİBİ q_criteria soruları * SELECT yaparak çok daha hızlı olacaktır: 'San Jose'% "GİBİ q_criteria"% 'devlet': 'CA'% "vb ....
Fikirler? Düşünceler? Görüşleriniz?
Yukarıda sunulan değildi daha iyi bir çözüm varsa, bunu dikkate almak isterim.