2012-02-13 1 views
0

Я разрабатываю приложение для iPhone, где мне нужно хранить большие данные в базе данных sqlite3.iPhone: Создайте базу данных sqlite с внешним ключом

Я хотел бы создать таблицу с ограничениями внешнего ключа для приведенного ниже примера. Как создать таблицы ниже с помощью sqlite или программно?

Обратите внимание!

"CREATE TABLE List (_id INTEGER PRIMARY KEY, ListId INTEGER UNIQUE, ListName TEXT, nameId INTEGER, FLAG BOOL)", 
"CREATE TABLE User (_id INTEGER PRIMARY KEY, Name TEXT, ListId INTEGER, FOREIGN KEY(ListId) REFERENCES List(ListId))", 

ответ

0

Самый простой способ использовать SQLite на iPhone, чтобы использовать обертку из API Sqlite C, такие, как fmdb.

Например

NSString* databasePath = //path to where you want to store it on disk 
FMDatabase* database = [FMDatabase databaseWithPath:databasePath]; 
[database open]; 
[self.database executeUpdate:@"CREATE TABLE List (_id INTEGER PRIMARY KEY, ListId INTEGER UNIQUE, ListName TEXT, nameId INTEGER, FLAG BOOL)"]; 
[self.database executeUpdate:@"CREATE TABLE User (_id INTEGER PRIMARY KEY, Name TEXT, ListId INTEGER, FOREIGN KEY(ListId) REFERENCES List(ListId))"]; 

Хотя, с использованием библиотеки SQLite низкого уровня может быть излишним. Что-то вроде Core Data может быть лучше в зависимости от вашей ситуации.

+0

Спасибо за ответ. Но я просто собираюсь создавать, обновлять, читать записи. Можно ли создать db, используя sqlitemanager в firefox? Но я не вижу FOREIGN KEY. – Getsy

+0

Если вы хотите создать его в менеджере sqlite firefox, просто поместите эти операторы sql на вкладку «Выполнение SQL» в правой части страницы. – DHamrick

+0

О, хорошо, спасибо! Это должно работать правильно? Если я добавлю FOREIGN KEY в свой запрос в «Execute SQL», это также будет показано там? – Getsy