C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Изменения в справочниках
Nick
Отправлено: 23.07.2004, 09:41


Машинист паровоза

Группа: Участник
Сообщений: 247



у кого нибудь есть опыт по созданию, как бы это выразить
справочников зависимых от времени запроса.

т.е.
В 2000 году организовали подразделение "Бригада Ух"
в нее вошли Бригадир и Работники,
потом вплоть до 2002 менялся и бригадир и работники

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

справочники будут организованы ввиде дерева в одной таблице по идее описанной на www.ibase.ru (несколько статей разных авторов)
только там нет такой возможности.
AVC
Отправлено: 23.07.2004, 10:24


Ветеран

Группа: Модератор
Сообщений: 1583



Таблицы нужно вырождать по времени.
В таблицу добавляется два поля типа Date "Принят"/ "Уволен" и все выборки идут с учетом этих полей. Немного (а иногда и очень) усложняет выборки.
Nick
Отправлено: 23.07.2004, 11:00


Машинист паровоза

Группа: Участник
Сообщений: 247



Да это конечно можно сделать при организации справочников обычным способом.
Но мне вдруг пондравилась идея ООП в базе данных
Там это никак не влезет.
Нужно что-то другое придумать.
Женя
Отправлено: 02.08.2004, 10:12


Не зарегистрирован







В 1С была попытка решить эту проблему при помощи периодических реквизитов. Это такое поле, которое на самом деле не поле, а как бы поле развернутое на оси времени, т.е. там есть метод типа ПолучитьЗначениеНаДату (Называется он не так совсм — но не суть). Если на уровне объектной модели это реализовать — то очень неплохо — физически — это все равно две таблички. Но в той же 1С эту проблему решили бы так: Справочник сотрудников стационарен. А вот факт присутсвия — увольнения оформляется отдельными записями в таблицу принятий и увольнений. И делая запрос именно в таблицу приема/уваолнений можно получить актуальный список. И того — 4 таблицы, 5 минут позора и все ОК smile.gif))
ЗЫ: В 1С это все давно придумано, но фишка в том, что когда объем базы меньше 300 МБ это еще как то работает — а потом уже ОЧЕНЬ ДОЛГО, даже если на MSSQL платформе.
Nick
Отправлено: 02.08.2004, 11:40


Машинист паровоза

Группа: Участник
Сообщений: 247



поэтому велосипед и конструю.
кстати
1С — терпеть не могу.
зарплату делал в досе когда еще 1С в зародыше была,
работает до сих пор в 2 организациях без поддержки.
Женя
Отправлено: 02.08.2004, 11:55


Ученик-кочегар

Группа: Участник
Сообщений: 7



Проковырялся с 1с года три, чуть не пошел сертификат получать — но все равно не люблю тоже. Фактически работа программиста 1С — не столько программирование, сколько бодание с Бухом что возможно, что нет и кто за это ответит smile.gif
Но тем не менее, опыт у 1С в этой области огромный и учитывать его все-таки стоит. Во всяком случае, по своей практике могу сказать, что зачастую, если использовать то,что придумано в 1С в "в меру обрезанном" варианте — то это — не плохо. Хотя конечно, с третьей стороны, 1С скорее хороший маркетинг нежели хороший продукт, хотя есть там и удачные идеи. На самом деле, есть большое желание, когда состарюсь и стану не кому не нужен написать для Builder ту объектную модель, которая реализована на 1С. Не все конечно:) Даже из отсутствия необходимости выполнять p-код должно работать быстрее, я уж не говорю, о том, на сколько удобнее писать на нормальном, человеческом языке программирования, а не на обрезанном под корень предметноориентированном бейсике на русском языке.

Вернуться в Работа с базами данных в C++Builder