Как вставить несколько значений в один столбец с помощью sqlite? - PullRequest
1 голос
/ 06 июня 2009

Я хотел бы иметь столбец в моей таблице, который может хранить переменное количество значений int. Каков наилучший способ сделать это? Я хотел бы иметь возможность выбирать на основе этих целых, чтобы список CSV не работал.

По сути, в моей таблице есть ряд строк, которые могут принадлежать нескольким различным категориям. Я хотел бы хранить идентификаторы категорий в моей таблице и иметь возможность выбирать строки на основе категорий, к которым они принадлежат. Я считаю, что это называется отношениями многих ко многим. Я использую sqlite.

Ответы [ 2 ]

6 голосов
/ 06 июня 2009

Вам понадобится промежуточная таблица, в которой каждая строка представляет собой элемент и категорию.

ItemID          Category
111             1
111             2
222             1
222             2
222             3
333             3

Чтобы выбрать все элементы на основе категории (скажем, категория 2), вы можете выполнить следующий запрос

SELECT * FROM Items AS I INNER JOIN ItemsInCategories AS N ON N.ItemID = I.ItemID WHERE N.Category = 2

И это вернулось бы

ItemID
111
222
4 голосов
/ 06 июня 2009

Соотношение «многие ко многим» должно быть выполнено с использованием таблицы сопоставления. Не взламывая многозначный тип столбца

Например, этот BlogPost <-> Пример категории:

Blog
  Id
  Title
  Content

Category
  Id
  Title

Blog_Category
  BlogId
  CategoryId

Это означает, что когда BlogPost с идентификатором 12 является частью категорий 3,5 и 10, Blog_Category содержит следующие строки:

12, 3
12, 5
12, 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...