tonchikp » 27 авг 2017, 15:01
Уважаемые форумчане! Требуется ваша помощь!
Есть таблица-словарь SQLite3, где перечисляется что-то (не важно что, суть не в этом)
Ранее создавал так:
Код: Выделить всё
CREATE TABLE table (
id INTEGER PRIMARY KEY AUTOINCREMENT,
obj TEXT UNIQUE
);
Задумался, ведь тут по сути 3 поля с UNIQUE (rowid, id, obj), 2 с AUTOINCREMENT (rowid, id). Получается дублируются роли полей, выполняется возможно ненужная работа, нерациональность. Насколько я понимаю PRIMARY KEY в себе несёт UNIQUE и NOT NULL.
Может лучше так:
Код: Выделить всё
CREATE TABLE table (
obj TEXT PRIMARY KEY
) WITHOUT ROWID;
Подскажите пожалуйста, какие могут быть подводные камни нового подхода? Иными словами, какие минусы?
Уважаемые форумчане! Требуется ваша помощь!
Есть таблица-словарь SQLite3, где перечисляется что-то (не важно что, суть не в этом)
Ранее создавал так:
[code]
CREATE TABLE table (
id INTEGER PRIMARY KEY AUTOINCREMENT,
obj TEXT UNIQUE
);
[/code]Задумался, ведь тут по сути 3 поля с UNIQUE (rowid, id, obj), 2 с AUTOINCREMENT (rowid, id). Получается дублируются роли полей, выполняется возможно ненужная работа, нерациональность. Насколько я понимаю PRIMARY KEY в себе несёт UNIQUE и NOT NULL.
Может лучше так:
[code]
CREATE TABLE table (
obj TEXT PRIMARY KEY
) WITHOUT ROWID;
[/code]Подскажите пожалуйста, какие могут быть подводные камни нового подхода? Иными словами, какие минусы?