SQLite, таблицы «многие ко многим», относительные ссылки - PullRequest
0 голосов
/ 21 марта 2019

Допустим, у меня есть таблица eventsInHistory (извините, я не знаю, как создать табличную структуру):

число |-дата- |имя

1 ---------------- 17760704 - подписание Декларации независимости

2 ---------------- 19551105 - Док Браун изобретает путешествие во времени

Теперь у меня есть вторая таблица, peopleInHistory :

число |имя

1 ---------------- Томас Джефферсон

2 ---------------- ДокКоричневый

... и третий стол, peopleAtEvents :

personNumber |eventNumber

1 ------------------------------- 1

2 ------------------------------- 2

Теперь, скажем, я узнал о новом событии, в которое вернулся Док Браунвремя и встретил Томаса Джефферсона.Есть ли в SQLite (и / или с DBrowser) способ автоинкрементации сохранять события в хронологическом порядке, а также увеличивать любые ссылки, которые они могут иметь;другими словами, автоматически включите таблицы eventsInHistory и peopleAtEvents в следующее:

number |-дата- |имя

1 ---------------- 17760704 - подписание Декларации независимости

2 ---------------- 17760706 - Док Браун встречает Томаса Джефферсона

3 ---------------- 19551105 - Док Браун изобретает путешествие во времени

personNumber|eventNumber

1 ------------------------------- 1

1 ------------------------------- 2

2 ------------------------------- 2

2 ------------------------------- 3

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

1 Ответ

2 голосов
/ 22 марта 2019

Насколько я понял вашу проблему - ответ нет.Автоинкрементное значение «пропало», и у вас не будет переупорядоченных автоинкрементных значений - если вы не воссоздаете таблицу с новыми данными.

Вы действительно нуждаетесь что переупорядочить?Если значения «значимые», вы всегда можете запросить таблицы и получить данные так, как вам нравится:

Вам нужна таблица eventsInHistory в хронологическом порядке?Просто запросите его:

SELECT * FROM eventsInHistory ORDER BY date;
SELECT * FROM peopleAtEvents ORDER BY personNumber, eventNumber;

Если вы хотите получить доступ к данным таким образом без необходимости каждый раз вводить этот запрос, просто создайте представление:

CREATE VIEW V_EventsOrderer AS
SELECT * FROM eventsInHistory ORDER BY date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...