Вопрос № 120200: Доброго времени суток!
Помогите, пожалуйста, с проектированием БД.
СУБД FireBird 2.0.
Есть определенная территориальная единица (выдел). Выдела объединяются в квартал, тот в лесничество и т.д.
Характеристики выдела описываю...
Вопрос № 120.200
Доброго времени суток!
Помогите, пожалуйста, с проектированием БД.
СУБД FireBird 2.0.
Есть определенная территориальная единица (выдел). Выдела объединяются в квартал, тот в лесничество и т.д.
Характеристики выдела описываются макетами, которых есть 6 основных и порядка 30 дополнительных (со временем колличество может меняться). Для описания макетов существует ряд справочных таблиц.
Таблица выделов будет содержать порядка 10 000 000 записей.
Вопрос 1. Создавать или нет суррогатный ключ типа ID или использовать в качестве первичного ключа связку KVARTAL_ID,VYDEL_NUMBER?
Вопрос 2. Для дополнительных макетов делать отдельно каждому таблицу или сделать одну таблицу с указанием номера макета (полей будет в любом случае не больше 8)?
Вопрос 3. Основной!!! Каждый год информация из таблицы VYDEL будет актуализироваться по некоему алгоритму с сохранением старой информации. Как реализовать накопление данных без чудовищного распухания таблицы VYDEL (FireBird).
Спасибо.
Отправлен: 26.01.2008, 00:57
Вопрос задал: Zubex (статус: 7-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Zubex!
1. Если VYDEL_NUMBER уникален, его вполне можно использовать в качестве ключа самостоятельно.
2."отдельно каждому таблицу" лучше не создавать, добавьте информационное поле N для характеристик (основная, дополнительная).
3. После завершения года можно создать арзив (SELECT * INTO Archive2007 FROM VYDEL) и очистить таблицу (DELETE * FROM VYDEL). При этом не потребуется создавать поле регистрации года, не будет "распухания таблицы". Но если все же добавить это поле, и обращаться к таблице через запрос с условием отбора - год, то СУБД будет работать только с данными выбраного года. При таком варианте доступа к данным "чудовищное распухание" реально будес сказываться только на дисковом пространстве.
решать Вам.
Удачи.
Евгений.
Ответ отправил: Тесленко Евгений Алексеевич (статус: Студент)
Ответ отправлен: 28.01.2008, 21:16 Оценка за ответ: 5 Комментарий оценки: Спасибо большое! Вы подтвердили мои предположения по 1 и 2 вопросу. По 3 вопросу - дисковое пространство не проблема, потому как данные за последние 10 лет могут потребоваться в любое время. Хотя я думал завести отдельный файл БД для каждого года.