Как мне разрешить ввод нескольких значений в одной ячейке mysql

#mysql #node.js #express

#mysql #node.js #выражать

Вопрос:

у меня есть 2 таблицы sql, похожие на ту, что показана ниже. как мне разрешить ввод нескольких значений в ячейку идентификатора категории в таблице 2? в настоящее время он разрешает ввод только одного значения (например, таблица 2 строка 1) и выдает ошибку (усеченное значение) при вводе 2 значений, разделенных запятой. Спасибо!

Таблица 1

идентификатор категории название категории
1 жареная еда
2 овощи
3 белок

Таблица 2

идентификатор продукта название продукта питания идентификатор категории
1 brocolli 2
2 жареная курица 1, 3

Комментарии:

1. Хранение данных csv никогда не является хорошей идеей, вместо этого рассмотрите таблицу соединений.

2. Привет @P.Salmon мои данные хранятся в таблице mysql, а не в таблице csv. Мне было интересно, будут ли работать многие или многие таблицы?

3. Другими словами, не храните как 1,2 (т.Е. Данные csv) ни в одной таблице

4. при вводе 2 значений, разделенных запятой, выдается ошибка (усеченное значение) . Я думаю, это из-за числового типа данных столбца, который не может хранить значение CSV (строкового типа). Создайте дополнительную таблицу смежности вместо одного category id столбца.

Ответ №1:

Прямой ответ: «вы этого не делаете». Не существует единого элемента таблицы с несколькими ссылками, который делает то, что вы ищете здесь.

Вместо этого у вас есть третья таблица, которая связывает две. Возможно, «category_membership» будет иметь три столбца: id, foodId,CategoryID

1, 1, 2 (связывает брокколи с овощами)

2, 2, 1 (связывает курицу с жареной пищей)

3, 2, 3 (связывает курицу с белком)

(Вы также должны удалить столбец «идентификатор категории» из своей таблицы продуктов, поскольку эта таблица ссылок обрабатывает это.)