Указатели на таблицы в SQLite - PullRequest
0 голосов
/ 17 сентября 2010

Скажем, у меня есть таблица яблок (apple_id).И для каждого яблока у меня есть история его веса с течением времени.Как структурировать его так, чтобы при каждом добавлении яблока создавалась связанная таблица с его историей веса?

Наличие только одной таблицы истории веса для всех яблок (apple_id, age, weight) выглядит как снижение производительности при просмотре истории веса яблока, так как он должен просматривать историю веса всех других яблок,Так что, похоже, мне нужно создать новую таблицу для каждого нового яблока (и удалять его каждый раз, когда яблоко удаляется).Как это сделать?

Моя идея - взять взять apple_id и преобразовать его в строку.Таким образом, имя таблицы уникально и легко генерируется.

1 Ответ

2 голосов
/ 17 сентября 2010

То, что вы только что описали, звучит как кошмар обслуживания. То, что вы имеете здесь, это соотношение один-ко-многим между яблоком и его весом с течением времени. Вы можете сделать:

apples table: apple_id, other apple fields
apple_weights table: aw_id, apple_id, weight, age

Затем, чтобы вывести все веса для данного яблока, просто

SELECT weight, age 
FROM apple_weights 
WHERE apple_id=X 
ORDER BY age ASC

Если он правильно проиндексирован, производительность не будет проблемой. Реляционные базы данных очень эффективны при выполнении подобных вещей, потому что они были разработаны для этого.

...