Каков наилучший способ сохранить массивы в SQLite? - PullRequest
4 голосов
/ 02 марта 2012

Я пытаюсь добавить массив в базу данных SQLite на iPhone. Дело в том, что я не знаю, сколько объектов массива захочет использовать пользователь. Это может быть 1, это может быть 10. Если бы я выделил 10 полей в таблице SQLite, это было бы 9 трат, если пользователь должен был использовать одно, и это установило бы верхнюю границу для 10 записей.

Таким образом, я подумал об использовании одного поля типа VARCHAR и добавлении каждого объекта массива со специальным символом между каждым объектом. Как это будет с точки зрения производительности? Есть идеи получше?

Ответы [ 4 ]

3 голосов
/ 02 марта 2012

Мое предположение будет использовать платформу NSCoder. Поскольку NSArray соответствует протоколу NSCoding, сериализация для вас уже выполнена:

  NSMutableData *data = [[NSMutableData alloc] init];
  NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
  [archiver encodeObject:myArray forKey:myArchiveKey];
  [archiver finishEncoding];
  [archiver release];

  // write here data object to a BLOB field of your SQLite db

Декодирование будет очень похоже

0 голосов
/ 02 марта 2012

Вы можете хранить записи массива в виде строк.

0 голосов
/ 02 марта 2012

вы можете сохранить массив в формате объекта json и при получении преобразовать объект json в массив.

0 голосов
/ 02 марта 2012

Вы можете сохранить их как столбцы OBJECT.

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