Я реалізую наступну модель для зберігання пов’язаних з користувачами даних у своїй таблиці - у мене є 2 стовпчики - uid
(первинний ключ) та meta
стовпець, який зберігає інші дані про користувача у форматі JSON.
uid | meta
--------------------------------------------------
1 | {name:['foo'],
| emailid:['foo@bar.com','bar@foo.com']}
--------------------------------------------------
2 | {name:['sann'],
| emailid:['sann@bar.com','sann@foo.com']}
--------------------------------------------------
Це кращий спосіб (продуктивність мудрий, дизайн-навхрест) , ніж модель однієї колонки-в-власності, де таблиця буде мати багато стовпців , як uid
, name
, emailid
.
Що мені подобається в першій моделі, це те, що ви можете додати якомога більше полів, обмежень немає.
Також мені було цікаво, тепер, коли я реалізував першу модель. Як я виконую запит на ньому, як, наприклад, я хочу назбирати всіх користувачів, які мають ім’я типу "foo"?
Питання - Який кращий спосіб зберігати пов’язані з користувачем дані (маючи на увазі, що кількість полів не визначено) у базі даних, використовуючи - JSON або стовпець на поле? Крім того, якщо перша модель реалізована, як запитувати базу даних, як описано вище? Чи слід використовувати обидві моделі, зберігаючи всі дані, які можуть шукатись запитом в окремому рядку, а інші дані в JSON (це інший рядок)?
Оновлення
Оскільки не буде занадто багато стовпців, на яких мені потрібно здійснити пошук, чи розумно використовувати обидві моделі? Ключ на стовпчик даних, які мені потрібно шукати, та JSON для інших (у тій самій базі даних MySQL)?