powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Таблица с неопределенными столбцами
4 сообщений из 4, страница 1 из 1
Таблица с неопределенными столбцами
    #40120406
pppp27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как правильно делать структуру базы данных.

Раньше было
TABLE `CLIENT` (`client_id`, `login`, `pass`, `name`,`tel`)
TABLE `MONEY` (`client_id`, `time`, `action`, `sum`)

но у клиента стали появляться другие параметры (адрес, второй телефон, скидка, несколько договоров, ИНН, а в будущем еще не определенные параметры...
также и в списаниях требуется расшифровка(количество, качество, название, периодичность и т.д.)

Поэтому количество столбцов выросло до 30 и продолжает расти, что не ведет к удобству.

Как вижу решение
создать таблицу
TABLE `CLIENT` (`client_id`, `param`, `value`) например
(1,'name','Pavel'),(1,'tel_1','7911'),(1,'tel_2','7921');
(2,'name','Sergei'),(2,'tel_1','7911'),(2,'skidka','VIP');

Но тогда на клиента будут сотни строк, да и 'tel_xxx' тоже трудно обрабатываемый параметр

Второе решение это таблицу
TABLE `CLIENT` (`client_id`, `JSON`)
где в JSON засунуть все параметры, но тогда сложнее искать клиента (например с определенным телефоном)

как правильнее сделать?
...
Рейтинг: 0 / 0
Таблица с неопределенными столбцами
    #40120441
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pppp27
Как вижу решение
создать таблицу
TABLE `CLIENT` (`client_id`, `param`, `value`)

Поздравляю, вы изобрели EAV.

pppp27
Второе решение это таблицу
TABLE `CLIENT` (`client_id`, `JSON`)

Не вариант - JSON и прочие CSV пригодны для хранения, но не для поиска/отбора/агрегирования.
...
Рейтинг: 0 / 0
Таблица с неопределенными столбцами
    #40120628
pppp27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Спасибо за ответ. Не успел найти хорошую статью про EAV.

Почитаю.

1)А как делать под параметры.
Например адрес состоит из улицы, номера дома, квартиры. А может содержать еще корпус и т.д.

2) Как найти пользователя у которого адрес=Москва и имя=Павел. JOIN таблицы себя на себя? А если в ней млн строк?
...
Рейтинг: 0 / 0
Таблица с неопределенными столбцами
    #40120658
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pppp27
2) Как найти пользователя у которого адрес=Москва и имя=Павел. JOIN таблицы себя на себя?

Нет, условия в IN и GROUP BY + HAVING для отсечения по степени релевантности.

EAV сильна тем, что для таких задач позволяет легко делать "совпадение хотя бы двух условий из трёх".
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Таблица с неопределенными столбцами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]