2016-12-19 5 views
0

Задача Невозможно создать таблицу с индексным столбцом, который ссылается на несколько строк в таблице. Пример изображения ниже того, что я пытаюсь создать.Структура таблицы SQLite для создания отношения индекса 1: Многие

Представьте, что таблица (SQLite) будет содержать дивидендные выплаты по акциям. Столбец индекса установлен на символы тикера. Однако каждый символ тикера относится к нескольким записям, которые организованы отметкой времени. Документация по SQLite и около 15 других учебных пособий, похоже, сосредоточена на индексировании, где всегда есть соотношение 1: 1 между индексом и записью. Я хотел бы создать индекс с соотношением 1: много.

Поиск будет найти соответствующий запас по символу, а затем (вероятно) вторичный индекс в датах в первом столбце. Но я не могу найти примеров, когда другие пытались настроить эту структуру. Заставляет меня думать, может быть, у меня нет правильного подхода, или это только особый случай.

Example Table Structure

ответ

0

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

Хорошее эмпирическое правило состоит в том, чтобы начать с индекса на столбцах (столбцах), которые вы используете в своем предложении where. Затем запустите запросы и убедитесь, что вы получаете удовлетворительную производительность.

+0

Спасибо за советы, Майкл. Я понимаю создание индекса. Но я не понимаю, как создать этот индекс для обращения к нескольким строкам. Не могли бы вы привести пример SQLite или ссылку на него? Спасибо! – Adestin

+0

Вы не найдете документацию, потому что это не то, что вам нужно делать. Просто используйте стандартный синтаксис: создайте индекс index_name в таблице (столбцы). Нет ничего особенного в том, чтобы ссылаться на несколько строк. Это будет просто работать! –

+0

ой. ой. Таким образом, поля первичных ключей не обязательно должны быть уникальными ... поэтому каждое поле в этом столбце будет иметь повторяющиеся ключи ... это дает мне результаты поиска, которые мне нужны. Спасибо, Майкл. Это именно то, что мне нужно было услышать. – Adestin