Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / справочник / 8 сообщений из 8, страница 1 из 1
26.09.2007, 16:01
    #34828371
puhh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
справочник
Подскажите, пожалуйста, каков стандартный подход к решению таких задач? (MS SQL Server 2005)

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

Нужно - хранить историю перевозок. Чтобы пользователь мог определить, что 1 сентября Петров с паспортом xyz на Волге № 123 ездил по адресу Х, и не важно, что сейчас у Петрова паспорт zyx и Волга поменяла номер на 345.

Что лучше сделать?

Хранить в таблице данных не ссылки на справочники, а сами значения?
При редактировании не изменять запись, а добавлять новую, а старую помечать как неактивную?

Может, еще варианты?

Спасибо...
...
Рейтинг: 0 / 0
26.09.2007, 16:08
    #34828405
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
справочник
Добавить в справочники поля С, По, превратив их таким образом в хранилище истории. На текущую дату для ввода выбирать только те записи у которых По не больше текущей даты или пустая.
...
Рейтинг: 0 / 0
26.09.2007, 16:39
    #34828574
puhh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
справочник
2Программист-Любитель:

ага. немного продвинутый мой второй вариант.
на самом деле сейчас такая гибкость не нужна, но вполне может быть, что потребуется позже.

спасибо.
...
Рейтинг: 0 / 0
26.09.2007, 17:10
    #34828796
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
справочник
Еще подумайте - завтра не потребуется ли ответить, а на каких автомобилях работал водитель за период?
...
Рейтинг: 0 / 0
26.09.2007, 17:12
    #34828806
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
справочник
puhhНужно - хранить историю перевозок.
Вот именно, причем в отдельной таблице, с датами, маршрутом и т.д. А справочники не трогайте.
...
Рейтинг: 0 / 0
26.09.2007, 18:13
    #34829125
sqllex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
справочник
Программист-ЛюбительДобавить в справочники поля С, По, превратив их таким образом в хранилище истории. На текущую дату для ввода выбирать только те записи у которых По не больше текущей даты или пустая.
Вы про 3НФ слышали?

Автору топика.
Заведите отдельную таблицу ссылающуюся на табл. водителей и авто для хранения периодических значений. В разделе Статьи есть 3 (если не ошибаюсь) примера реализации периодических данных. Просто выберите подходящий.
...
Рейтинг: 0 / 0
26.09.2007, 22:19
    #34829658
puhh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
справочник
ModelRЕще подумайте - завтра не потребуется ли ответить, а на каких автомобилях работал водитель за период?

Угу. Вполне может быть. Поэтому история с датами будет не лишней.

модВот именно, причем в отдельной таблице, с датами, маршрутом и т.д. А справочники не трогайте

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

sqllexЗаведите отдельную таблицу ссылающуюся на табл. водителей и авто для хранения периодических значений

Теоретически, все данные могут меняться... Но вообще идея понятна.

sqllexВ разделе Статьи есть 3 (если не ошибаюсь) примера реализации периодических данных. Просто выберите подходящий.

Смотрю.

--

Всем спасибо!
...
Рейтинг: 0 / 0
27.09.2007, 09:53
    #34830088
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
справочник
puhhЕстественно, будет отдельная таблица с датами, маршрутом и т.д., а также с информацией о водителях и машинах. Вопрос как раз в том, что если в таблице с данными хранить просто идентификатор записи справочника, а эта запись со временем изменится, то исторические данные не будут соответствовать действительности
Нужно хранить историю изменения справочника (водитель поменял фамилию :)). По дате в таблице поездок можно будет определить актуальное состояние справочника.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / справочник / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]