НЕ login, email
і т.д., А например: Мои увлечения, Мой любимый сериал, Статус пользователя (Пример:"У меня отличное настроение!"), дату рождения, город, страну.
Я бы мог сделать это все в одной таблице users
, но не считаю это правильным тоном с разных точек зрения.
Я не понимаю, например, если у меня будет очень много таких полей (мои увлечения, мои любимые сериалы..), то как мне быть в этом случаи? Просто делать много полей?
id_user | Мой любый случай в жизни | ... | ... | ... |
---------------------------------------------------------------
1 | Однажды я написал "hello, world!" | ... | ... | ... |
В общем, кроме вопроса выше, как мне объединить такие таблицы?
Я всегда начинаю с самого простого, надо делать как можно проще...конечно можно наколбасить таблиц, стильных связей и чтоб позапутанней, и чтоб при создании записи позабыть что у меня еще в 5ти таблицах надо создать чего-то там...
Довольно интересный способ хранения информации в БД, которая не участвует в WHERE запросе.
id | date | login | password | lname | sname | fname | info
----------------------------------------------------------------------
int| timestamp | varchar| varchar | varchar| varchar| varchar | BLOB
в поле info хранится обычный JSON:
{"serial":"Doctor Who", "music":"Альянс - На заре", "food":"Курица"}
Преимущества очевидны:
Не нужны куча таблиц и связей
Простые запросы на выборку
JSON легко распарсить
Недостатки:
Для этого обычно делаются вертикальные таблицы. Структура у них такая:
table (id, key, value)
При необходимости, их связывают с различными сущностями - можно сделать так:
table (id, user_id, key, value)
Также key можно вынести в отдельную таблицу, чтобы пользователи могли юзать уже существующие ключи. Т.е.:
key (id, title)
table (id, user_id, key_id, value)
В итоге получается такие таблицы:
Table:
id | user_id | key_id | value
1 | 1 | 1 | Все хорошо
Key:
id | title
1 | Статус
В SQL данные можно получить одним запросом, используя JOIN:
SELECT * FROM table AS t (INNER, LEFT) JOIN key AS k WHERE k.id = t.key_id
P.S. Прочитай про нормализацию/денормализацию БД, а также про отношения один-ко-многим, многие-ко-многим
В зависимости от функционала данные также можно хранить сериализованных переменных.
К примеру делаешь объект пользователя, например $user->status="Отличное настроение", затем выполняешь serialize($user) и заносишь это в БД. Обратная операция выполняется через unserialize.
Также стоит посмотреть на JSON
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
У меня простой ajax запрос который должен отправлять input на сервер через сервлет не перезагружая страницуНо сервер не получает данные
Как реализовать поиск, есть массив с заголовками книг, поле для ввода текста, при вводе пары букв должны выводиться совпадения
Я делаю приложение на JavaFX и мне требуется получить озображение по поисковому запросуВыполнять поиск в google через java можно через google-api-services-customsearch,...