powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Правильная организация структуры
19 сообщений из 19, страница 1 из 1
Правильная организация структуры
    #38117736
mosalova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация такая.
Есть куча программ и еще большая куча таблиц на фокспро 2.6. В необозримом будущем планируется перевести это все на фокс 9.
Передо мной же пока стоит маленькая задача - имея таблицу из фокса 2.6, делать различные выборки и отчеты.

таблица фокса 2.6 - post_r содержит информацию: табельный номер, фио, отдел, пол, признак увольнения, дата увольнения, год рождения - т.е. весь численный состав предприятия: и работающие, и уволенные. все поля в этой таблице символьные.

я создала в фоксе 9 пустую таблицу kadri , в которой привела тип полей к удобному: даты к date, простые числа к integer и т.д.
Далее я переношу данные из post_r в kadri , попутно приводя их в соответствующие форматы и работаю уже с таблицей kadri .

Но поскольку post_r может меняться, я ставлю проверку по дате и времени последней модификации.
И если post_r была изменена Как будет правильно :
1. сравнивать каждую запись post_r и kadri и вносить соответствующие изменения для kadri
или
2. по новой создавать таблицу kadri и скопировать в нее данные из post_r .
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38117757
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalova,

минус 1-го варианта: сравнивать придётся вручную, ибо любая непредвиденная ситуация - и ага...
минус 2-го варианта: кроме проблем с внешними ключами, вроде бы никаких

Поскольку, по информации моего ХШ, внешних ключей у вас нет и в ближайшем будущем не планируется, то вариант 2 будет... нет,не правильней, а всего лишь удобней.

PS. А удаления из таблицы есть? Команда PACK к ней применяется? Команда INSERT (не append)?
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38117820
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оба варианта правильные со своими плюсами и минусами.
1. Плюс в том что можно обновлять в процессе работы. Для ускорения контроля изменений советую считать контрольную сумму записи исходной таблицы SYS(2017) и сравнивать с сохраненным в копии, соответственно в копии хранить контрольную сумму для сравнения. Минус в сложности кода сравнения. Хотя не так уж и сложно.
2. Плюс в простоте кода загрузки. Минус - работать нельзя пока перенос идет.
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38117926
mosalova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Таблица post_r ведется в фоксе 2.6. записи из таблицы post_r не удаляются.
Может меняться:
1. табельный номер - tabnom
2. номер отдела - otdel
3. фамилия - fio
4. если человек уволился в поле "признак увольнения" (pr_uvol) вместо 0 ставится 1 и заполняется поле "дата увольнения" (data_uvol)
При поступлении нового человека добавляется новая запись.

Из таблицы post_r в kadri информация передается так:
1. каждую запись в post_r просматриваю и:
даты: год рождения и дата увольнения привожу к формату Date ДД.ММ.ГГГГ записываю в локальные переменные rozd и uvol соответственно
признак увольнения: из строкового привожу к integer записываю в локальную переменную pruvol
2. запись строки командой
Код: sql
1.
2.
INSERT INTO kadri (tabnom,fio,otdel,pol,data_uvol,pr_uvol,god_rozd) ;
		 VALUES (post_r.tabnom,post_r.fio,post_r.otdel,post_r.pol,uvol,pruvol,rozd)


3. после того как все записи приведены к нужному формату и записаны в таблицу kadri : закрываю все таблицы и открываю kadri только для чтения.

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

Хочется организовать все правильно, с учетом того, что когда-нибудь ВСЕ будет переведено в фокс 9.
А то странно получается: для разработки пользуюсь современными средствами, а подстраиваюсь под древние (я бы сказала корявые) разработки.
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38117961
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalova, если всё добавляется только в конец таблицы и удаления не проводятся, то можно и по первому варианту работать.Dima Tконтрольную сумму записи исходной таблицы SYS(2017)+1
Dima TМинус в сложности кода сравнения. Хотя не так уж и сложно.В вышеописанном случае связь можно делать тупо по recno().
mosalovaс учетом того, что когда-нибудь ВСЕ будет переведено в фокс 9Тогда сразу закладываться надо на клиент-сервер, а это вариант 1... без вариантов :)

ЗЫ.mosalova2. запись строки командойНет, я имел в виду - в старой системе как записи добавляются?
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38117971
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalovaМожет меняться:
1. табельный номер - tabnom
2. номер отдела - otdel
3. фамилия - fio
4. если человек уволился в поле "признак увольнения" (pr_uvol) вместо 0 ставится 1 и заполняется поле "дата увольнения" (data_uvol)
Ключевое поле какое-нибудь у таблицы есть?
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38117995
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalova

А как вы собираетесь в будущем заполнять поля вроде "отдел". Список лиц обычно бывает связан со справочниками через ключевые поля.
И почему не разовый перенос, а необходимость параллельной работы.
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118033
mosalova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

tanglirНет, я имел в виду - в старой системе как записи добавляются?

Это мне не ведомо. мне принесли таблицу post_r и приказали с ней работать. Менять что-либо в ней я не могу.

По замыслу тех, кто когда-то разработал это в старой системе: если человек уволен, то всего лишь признак увольнения = 1, если перешел в другой отдел, то меняются табельный и отдел, т.е. на каждого работника одна запись.

А в реальности встречаются работники, который одновременно и уволен и работает. Какая из двух записей верная, я не знаю, так что этот работник попадает у меня и в списки уволенных, и в списки работающих
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118052
mosalova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По хорошему, надо создать совершенно новую БД с новой структурой, связями и т.д. - новые технологии, новые возможности.
Но мое начальство сказало что там ОЧЕНЬ большой объем, переходить будем постепенно, вырвали из контекста одну таблицу, дали ее мне и сказали: "твори", вот и приходится подстраиваться
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118065
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalovaПо хорошему, надо создать совершенно новую БД с новой структурой, связями и т.д. - новые технологии, новые возможности.
Но мое начальство сказало что там ОЧЕНЬ большой объем, переходить будем постепенно, вырвали из контекста одну таблицу, дали ее мне и сказали: "твори", вот и приходится подстраиваться

Каково назначение вашей "кучи программ", как много их?
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118072
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalovaПо замыслу тех, кто когда-то разработал это в старой системе: если человек уволен, то всего лишь признак увольнения = 1, если перешел в другой отдел, то меняются табельный и отдел, т.е. на каждого работника одна запись.
Как в эту логику вписывается возможность изменения ФИО?
Что-то должно быть ключом.

mosalovaА в реальности встречаются работники, который одновременно и уволен и работает. Какая из двух записей верная, я не знаю, так что этот работник попадает у меня и в списки уволенных, и в списки работающих
Этот бред переносить не стоит. Надо для начала разобраться с логикой старой задачи и в новой завести ключевое поле.
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118135
mosalova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T Как в эту логику вписывается возможность изменения ФИО

Когда выходят замуж :)

Dima T Надо для начала разобраться с логикой старой задачи и в новой завести ключевое поле.

Полностью согласна.
Но пока ситуация такая: отделы заработной платы, бухгалтерия и иже с ними работают с программами и таблицами, разработанными в фоксе 2.6 (сказали что функций 200 или больше). Отчеты в доcовском формате: таблица построена с помощью --- и |||, куча повторяющихся записей, проверки на уникальность нет - как они сами в этом разбираются - не знаю. И при этом пользователи довольны и менять ничего не хотят :(.
И мой начальник хочет начать с малого: на примере отчетов показать, что новые технологии - это красиво, удобно, и переучиваться никому не надо. И вот если им понравится, тогда будем

Dima T Надо для начала разобраться с логикой старой задачи и в новой завести ключевое поле.

Сейчас же моя программа отдельно, а та вся кухня отдельно
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118160
fore5ta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mosalova А в реальности встречаются работники, который одновременно и уволен и работает. Какая из двух записей верная, я не знаю ...
mosalovaтаблица фокса 2.6 - post_r содержит информацию: табельный номер, фио, отдел, пол, признак увольнения, дата увольнения ...
mosalova ...вырвали из контекста одну таблицу, дали ее мне и сказали: "твори"..
imho, при таких проблемах с одной таблицей "... новые технологии, новые возможности ..." вам не очень помогут, тем более что эта таблица не самая сложная для понимания, могли бы "вырвать" другую, где много полей с цифрами, ничего не говорящими ...
mosalovaНо поскольку post_r может меняться
предполагаю, что вся остальная большая куча таблиц также может меняться. Если решили из "старой" кучи создать "новую" кучу, пишите свою структуру, обработки и т.д. и процедуру импорта данных которой будете обновлять как сами решите. И тут два варианта: либо "новое" не дотягивает до требуемого и умирает (начальство не всегда ошибается), либо "старое" перестает использоваться. Поэтому, надо очень хорошо изучить, что храниться в таблицах, и какими программами эти таблицы используются.
mosalovaПередо мной же пока стоит маленькая задача - имея таблицу из фокса 2.6, делать различные выборки и отчеты.
А что мешает просто использовать эту таблицу для выборок и отчетов без переносов и преобразований, как их используют другие программы? Т.е. задача просто поработать (поучиться) с данными или все же перенести их все в новом качестве?
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118168
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalovaDima T Как в эту логику вписывается возможность изменения ФИО

Когда выходят замуж :)
Как-то не подумал. Тогда как может табельный номер меняться? Надо разобраться как используют эту таблицу старые проги.
Можно предположить что физический номер записи (RECNO()) это и есть ключ. Только прежде чем к нему привязываться надо точно выяснить что никогда записи не помечаются на удаление и не делается PACK.

mosalovaDima T Надо для начала разобраться с логикой старой задачи и в новой завести ключевое поле.
Сейчас же моя программа отдельно, а та вся кухня отдельно
Твоя программа - как напишешь так и будет работать. Если тупо исполнять тупые задания не вникая с предметную область ничего хорошего не получится. И твой начальник накажет за кривизну тебя, и будет прав.
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118194
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalovaИ мой начальник хочет начать с малого: на примере отчетов показать, что новые технологии - это красиво, удобно, и переучиваться никому не надо. И вот если им понравится, тогда будем
Надо исходить из того что в итоге должно быть переписано всё, а не из того что сейчас надо только отчеты. Иначе завтра потребуется что-то добавить и придет понимание что в этой кривизне ничего дописать нельзя и надо снова начинать с нуля. Хотя понимание кривизны уже есть, т.к. уже непонятно как синхронизировать данные.
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118197
fore5ta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сори, пока писал, появился пост который много прояснил
mosalova Но пока ситуация такая: отделы заработной платы, бухгалтерия и иже с ними работают с программами и таблицами, разработанными в фоксе 2.6
Начните не с отчетов, а отдела ЗП. Особенность этого подразделения в том, что они не примут половинчатое решение, либо все - либо ничего. А значит им необходимо реализовать все: ввод данных и все что с ним связано, все расчеты всех видов расчета, все отчеты, и не только печать а и банки, налоговые, пенсионный, почта и т.п. И они перейдут на "новое" только если их все будет устраивать в комплексе (красивый отчет там последнее дело). Когда их победите, можете смело браться за другие отделы.
Иначе (я предполагаю что вы начали с кадров) вы только породите "зоопарк" разного ПО.
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118273
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalovaНо пока ситуация такая: отделы заработной платы, бухгалтерия и иже с ними работают с программами и таблицами, разработанными в фоксе 2.6 (сказали что функций 200 или больше). Отчеты в доcовском формате: таблица построена с помощью --- и |||, куча повторяющихся записей, проверки на уникальность нет - как они сами в этом разбираются - не знаю. И при этом пользователи довольны и менять ничего не хотят :(.
И мой начальник хочет начать с малого: на примере отчетов показать, что новые технологии - это красиво, удобно, и переучиваться никому не надо. И вот если им понравится, тогда будем


Вам действительно с этого поста надо было начинать, а то напугали.

Вам дали задание типа: "Копать от забора и до обеда". Типичная ситуация.
Вам надо убедить начальство в необходимости перехода на 1С, там все это давно решено. Таким путем вы ничего не докажете, на новые технологии не переходят без переобучения персонала. Такой объем самостоятельно не разрабатывают и велосипед не изобретают.
Найдите вскрытую, для начала пойдет 1С7, и освойте ее сами.

Если же нет, то вам надо сначала изучить вопрос построения проектов, тем более что вы это понимаете. Каждая из этих задач довольно емкий проект.
И убедиться, что ничего из этого вы не сделаете, запинаясь на каждом вопросе (даже в этом случае - никакой необходимости параллельной работы нет).

И после этого уже более компетентно снова попытаться убедить в необходимости перехода на 1С.
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118462
mosalova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sg12,

Когда передо мной поставили задачу, я сразу спросила - почему не 1С и мне ответили - своих специалистов-разработчиков нет, приглашенные с фирмы дорого и главное - когда какой-то "пожар", то с фирмы пока приедет, пока решит проблему, а "сделать надо было вчера" - поэтому фокс.

Но мне интересно и в фоксе. так что - задание выполню в тех малых масштабах, которые от меня требуют. И пока прогу мою будут тестить, решать нравиться им или нет - последую вашему совету - изучу 1С.

Спасибо всем, что не оставляете без внимания :)
...
Рейтинг: 0 / 0
Правильная организация структуры
    #38118524
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mosalovasg12,

Когда передо мной поставили задачу, я сразу спросила - почему не 1С и мне ответили - своих специалистов-разработчиков нет, приглашенные с фирмы дорого и главное - когда какой-то "пожар", то с фирмы пока приедет, пока решит проблему, а "сделать надо было вчера" - поэтому фокс.

Но мне интересно и в фоксе. так что - задание выполню в тех малых масштабах, которые от меня требуют. И пока прогу мою будут тестить, решать нравиться им или нет - последую вашему совету - изучу 1С.

Спасибо всем, что не оставляете без внимания :)

Этот "пожар и дорого" решается тем, что при таком большом объеме надо самим изучать досконально 1С и становиться "своим" специалистом, чтобы не зависить от хапуг-фирмачей. В 1С тоже можно также программировать при необходимости. Программисты, знакомые с Foxpro, справляются с этим довольно быстро из-за схожести языков, непривычен только русский синтаксис (хотя есть и родной Engl).

В малых дозах задание попробуйте, раз требуют, но с изобретением велосипеда вряд ли у вас что-то серьезное получится. Хотя бы из-за отчетности, каждый раз будете расхлебывать аврал под визги бухгалтеров.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Правильная организация структуры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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