MySQL - хранение нескольких полей или одного поля CSV? - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть таблица PRODUCTS, и мне нужно внедрить систему Наличие , чтобы можно было фильтровать продукты по дням недели (например, продукт доступен только в пятницу).

I 'Я не уверен, стоит ли мне добавлять столбец «доступности» с 7 значениями bool, разделенными запятыми, каждое из которых представляет каждый будний день, или добавлять 7 разных столбцов.

Мне не очень нравится метод CSV, он бытакже требуется пост-обработка для фильтрации данных, но многостолбцовая мне кажется плохой практикой.Я думал об этом, но в отдельной таблице, например, PRODUCTS_AVAILABILITY в формате

| id | mon | tue | wed | etc...

Какой метод я должен использовать?

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Вы должны использовать таблицу «многие ко многим». PRODUCTS_AVAILABILITY:

product_id | day | availability

или поле json в одной таблице товаров (если вы используете MySQL 5.7+) https://dev.mysql.com/doc/refman/5.7/en/json.html

...fields | availability 
            JSON_TYPE('{1:true, 2:false...}');
0 голосов
/ 09 сентября 2018

Несколько полей.

Если нет, вам потребуется вытащить данные на язык программирования перед выполнением какой-либо обработки. Вы не сможете проиндексировать данные.

Читайте о нормализации базы данных

...