Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2017, 14:49   #1
tonchikp
Пользователь
 
Аватар для tonchikp
 
Регистрация: 16.07.2016
Сообщений: 15
Вопрос SQLite3 оптимизация хранения

Уважаемые форумчане! Требуется ваша помощь!

Есть таблица-словарь 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;
Подскажите пожалуйста, какие могут быть подводные камни нового подхода? Иными словами, какие минусы?
Изучаю Python3. Добавляйтесь в друзья: tonchikp@jabberon.net

Последний раз редактировалось tonchikp; 27.08.2017 в 14:52.
tonchikp вне форума Ответить с цитированием
Старый 27.08.2017, 15:49   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

В других таблицах будет внешний ключ для этой таблицы? С этого и исходи
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.08.2017, 16:34   #3
tonchikp
Пользователь
 
Аватар для tonchikp
 
Регистрация: 16.07.2016
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В других таблицах будет внешний ключ для этой таблицы? С этого и исходи
Будет, в другой таблице будет ссылка на obj. Тогда к старому решению но без rowid? Или оставить rowid?
Изучаю Python3. Добавляйтесь в друзья: tonchikp@jabberon.net

Последний раз редактировалось tonchikp; 27.08.2017 в 16:50.
tonchikp вне форума Ответить с цитированием
Старый 27.08.2017, 17:35   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А тот неименованный rowid внешним ключом получится сделать? Сомневаюсь. Во 2-м случае внешний ключ по идее - text
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
exceptions в sqlite3 ?? Neostat PHP 2 18.08.2015 20:42
MySQL или SQLITE3 Brandan SQL, базы данных 3 09.07.2014 17:36
SQLite3 + Delphi 7 iLnes БД в Delphi 3 25.11.2013 09:48
[C++Builder XE] Sqlite3 настройка by_Trojan Общие вопросы C/C++ 0 13.05.2012 17:42
отображение sqlite3 бд Clever Общие вопросы C/C++ 1 19.02.2009 16:19