Masamda kullanıcı ile ilgili verileri depolamak için aşağıdaki modeli uyguluyorum - 2 sütun - uid
(birincil anahtar) ve meta
kullanıcı hakkındaki diğer verileri JSON biçiminde saklayan bir sütun var.
uid | meta
--------------------------------------------------
1 | {name:['foo'],
| emailid:['foo@bar.com','bar@foo.com']}
--------------------------------------------------
2 | {name:['sann'],
| emailid:['sann@bar.com','sann@foo.com']}
--------------------------------------------------
Bu daha iyi bir yolu var mı (epeyce, tasarım bakımından) masa gibi birçok sütunlar bulunur tek sütunluk başına mülkiyet modeli, daha uid
, name
, emailid
.
İlk model hakkında sevdiğim şey, sınırlama olmadan olabildiğince çok alan ekleyebilirsiniz.
Ayrıca, ilk modeli uyguladığımı merak ediyordum. Üzerinde 'foo' gibi bir adı olan tüm kullanıcıları getirmek istiyorum, üzerinde nasıl bir sorgu yapabilirim?
Soru - JSON veya alan başına sütun kullanarak, kullanıcı ile ilgili verileri (alan sayısının sabit olmadığını akılda tutarak) depolamanın en iyi yolu hangisidir? Ayrıca, ilk model uygulanırsa, veritabanı yukarıda açıklandığı gibi nasıl sorgulanır? Her iki modeli de, sorgu tarafından aranabilecek tüm verileri ayrı bir satırda ve diğer verileri JSON'da (farklı bir satırdır) depolayarak kullanmalı mıyım?
Güncelleme
Üzerinde arama yapmam gereken çok fazla sütun olmayacağından, her iki modeli de kullanmak akıllıca mı? Aramam gereken veriler için sütun başına anahtar ve diğerleri için JSON (aynı MySQL veritabanında)?