#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 (связывает курицу с белком)
(Вы также должны удалить столбец «идентификатор категории» из своей таблицы продуктов, поскольку эта таблица ссылок обрабатывает это.)