|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
Ситуация такая. Есть куча программ и еще большая куча таблиц на фокспро 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 . ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 12:17 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalova, минус 1-го варианта: сравнивать придётся вручную, ибо любая непредвиденная ситуация - и ага... минус 2-го варианта: кроме проблем с внешними ключами, вроде бы никаких Поскольку, по информации моего ХШ, внешних ключей у вас нет и в ближайшем будущем не планируется, то вариант 2 будет... нет,не правильней, а всего лишь удобней. PS. А удаления из таблицы есть? Команда PACK к ней применяется? Команда INSERT (не append)? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 12:24 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
Оба варианта правильные со своими плюсами и минусами. 1. Плюс в том что можно обновлять в процессе работы. Для ускорения контроля изменений советую считать контрольную сумму записи исходной таблицы SYS(2017) и сравнивать с сохраненным в копии, соответственно в копии хранить контрольную сумму для сравнения. Минус в сложности кода сравнения. Хотя не так уж и сложно. 2. Плюс в простоте кода загрузки. Минус - работать нельзя пока перенос идет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 12:41 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
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.
3. после того как все записи приведены к нужному формату и записаны в таблицу kadri : закрываю все таблицы и открываю kadri только для чтения. Получается, что какой вариант не выбери, все равно придется каждую запись просматривать и приводить к нужному формату? Хочется организовать все правильно, с учетом того, что когда-нибудь ВСЕ будет переведено в фокс 9. А то странно получается: для разработки пользуюсь современными средствами, а подстраиваюсь под древние (я бы сказала корявые) разработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:24 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalova, если всё добавляется только в конец таблицы и удаления не проводятся, то можно и по первому варианту работать.Dima Tконтрольную сумму записи исходной таблицы SYS(2017)+1 Dima TМинус в сложности кода сравнения. Хотя не так уж и сложно.В вышеописанном случае связь можно делать тупо по recno(). mosalovaс учетом того, что когда-нибудь ВСЕ будет переведено в фокс 9Тогда сразу закладываться надо на клиент-сервер, а это вариант 1... без вариантов :) ЗЫ.mosalova2. запись строки командойНет, я имел в виду - в старой системе как записи добавляются? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:39 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalovaМожет меняться: 1. табельный номер - tabnom 2. номер отдела - otdel 3. фамилия - fio 4. если человек уволился в поле "признак увольнения" (pr_uvol) вместо 0 ставится 1 и заполняется поле "дата увольнения" (data_uvol) Ключевое поле какое-нибудь у таблицы есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:43 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalova А как вы собираетесь в будущем заполнять поля вроде "отдел". Список лиц обычно бывает связан со справочниками через ключевые поля. И почему не разовый перенос, а необходимость параллельной работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:53 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
tanglir, tanglirНет, я имел в виду - в старой системе как записи добавляются? Это мне не ведомо. мне принесли таблицу post_r и приказали с ней работать. Менять что-либо в ней я не могу. По замыслу тех, кто когда-то разработал это в старой системе: если человек уволен, то всего лишь признак увольнения = 1, если перешел в другой отдел, то меняются табельный и отдел, т.е. на каждого работника одна запись. А в реальности встречаются работники, который одновременно и уволен и работает. Какая из двух записей верная, я не знаю, так что этот работник попадает у меня и в списки уволенных, и в списки работающих ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:08 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
По хорошему, надо создать совершенно новую БД с новой структурой, связями и т.д. - новые технологии, новые возможности. Но мое начальство сказало что там ОЧЕНЬ большой объем, переходить будем постепенно, вырвали из контекста одну таблицу, дали ее мне и сказали: "твори", вот и приходится подстраиваться ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:18 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalovaПо хорошему, надо создать совершенно новую БД с новой структурой, связями и т.д. - новые технологии, новые возможности. Но мое начальство сказало что там ОЧЕНЬ большой объем, переходить будем постепенно, вырвали из контекста одну таблицу, дали ее мне и сказали: "твори", вот и приходится подстраиваться Каково назначение вашей "кучи программ", как много их? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:29 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalovaПо замыслу тех, кто когда-то разработал это в старой системе: если человек уволен, то всего лишь признак увольнения = 1, если перешел в другой отдел, то меняются табельный и отдел, т.е. на каждого работника одна запись. Как в эту логику вписывается возможность изменения ФИО? Что-то должно быть ключом. mosalovaА в реальности встречаются работники, который одновременно и уволен и работает. Какая из двух записей верная, я не знаю, так что этот работник попадает у меня и в списки уволенных, и в списки работающих Этот бред переносить не стоит. Надо для начала разобраться с логикой старой задачи и в новой завести ключевое поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:32 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
Dima T Как в эту логику вписывается возможность изменения ФИО Когда выходят замуж :) Dima T Надо для начала разобраться с логикой старой задачи и в новой завести ключевое поле. Полностью согласна. Но пока ситуация такая: отделы заработной платы, бухгалтерия и иже с ними работают с программами и таблицами, разработанными в фоксе 2.6 (сказали что функций 200 или больше). Отчеты в доcовском формате: таблица построена с помощью --- и |||, куча повторяющихся записей, проверки на уникальность нет - как они сами в этом разбираются - не знаю. И при этом пользователи довольны и менять ничего не хотят :(. И мой начальник хочет начать с малого: на примере отчетов показать, что новые технологии - это красиво, удобно, и переучиваться никому не надо. И вот если им понравится, тогда будем Dima T Надо для начала разобраться с логикой старой задачи и в новой завести ключевое поле. Сейчас же моя программа отдельно, а та вся кухня отдельно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:09 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalova А в реальности встречаются работники, который одновременно и уволен и работает. Какая из двух записей верная, я не знаю ... mosalovaтаблица фокса 2.6 - post_r содержит информацию: табельный номер, фио, отдел, пол, признак увольнения, дата увольнения ... mosalova ...вырвали из контекста одну таблицу, дали ее мне и сказали: "твори".. imho, при таких проблемах с одной таблицей "... новые технологии, новые возможности ..." вам не очень помогут, тем более что эта таблица не самая сложная для понимания, могли бы "вырвать" другую, где много полей с цифрами, ничего не говорящими ... mosalovaНо поскольку post_r может меняться предполагаю, что вся остальная большая куча таблиц также может меняться. Если решили из "старой" кучи создать "новую" кучу, пишите свою структуру, обработки и т.д. и процедуру импорта данных которой будете обновлять как сами решите. И тут два варианта: либо "новое" не дотягивает до требуемого и умирает (начальство не всегда ошибается), либо "старое" перестает использоваться. Поэтому, надо очень хорошо изучить, что храниться в таблицах, и какими программами эти таблицы используются. mosalovaПередо мной же пока стоит маленькая задача - имея таблицу из фокса 2.6, делать различные выборки и отчеты. А что мешает просто использовать эту таблицу для выборок и отчетов без переносов и преобразований, как их используют другие программы? Т.е. задача просто поработать (поучиться) с данными или все же перенести их все в новом качестве? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:20 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalovaDima T Как в эту логику вписывается возможность изменения ФИО Когда выходят замуж :) Как-то не подумал. Тогда как может табельный номер меняться? Надо разобраться как используют эту таблицу старые проги. Можно предположить что физический номер записи (RECNO()) это и есть ключ. Только прежде чем к нему привязываться надо точно выяснить что никогда записи не помечаются на удаление и не делается PACK. mosalovaDima T Надо для начала разобраться с логикой старой задачи и в новой завести ключевое поле. Сейчас же моя программа отдельно, а та вся кухня отдельно Твоя программа - как напишешь так и будет работать. Если тупо исполнять тупые задания не вникая с предметную область ничего хорошего не получится. И твой начальник накажет за кривизну тебя, и будет прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:28 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalovaИ мой начальник хочет начать с малого: на примере отчетов показать, что новые технологии - это красиво, удобно, и переучиваться никому не надо. И вот если им понравится, тогда будем Надо исходить из того что в итоге должно быть переписано всё, а не из того что сейчас надо только отчеты. Иначе завтра потребуется что-то добавить и придет понимание что в этой кривизне ничего дописать нельзя и надо снова начинать с нуля. Хотя понимание кривизны уже есть, т.к. уже непонятно как синхронизировать данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:36 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
сори, пока писал, появился пост который много прояснил mosalova Но пока ситуация такая: отделы заработной платы, бухгалтерия и иже с ними работают с программами и таблицами, разработанными в фоксе 2.6 Начните не с отчетов, а отдела ЗП. Особенность этого подразделения в том, что они не примут половинчатое решение, либо все - либо ничего. А значит им необходимо реализовать все: ввод данных и все что с ним связано, все расчеты всех видов расчета, все отчеты, и не только печать а и банки, налоговые, пенсионный, почта и т.п. И они перейдут на "новое" только если их все будет устраивать в комплексе (красивый отчет там последнее дело). Когда их победите, можете смело браться за другие отделы. Иначе (я предполагаю что вы начали с кадров) вы только породите "зоопарк" разного ПО. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:37 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalovaНо пока ситуация такая: отделы заработной платы, бухгалтерия и иже с ними работают с программами и таблицами, разработанными в фоксе 2.6 (сказали что функций 200 или больше). Отчеты в доcовском формате: таблица построена с помощью --- и |||, куча повторяющихся записей, проверки на уникальность нет - как они сами в этом разбираются - не знаю. И при этом пользователи довольны и менять ничего не хотят :(. И мой начальник хочет начать с малого: на примере отчетов показать, что новые технологии - это красиво, удобно, и переучиваться никому не надо. И вот если им понравится, тогда будем Вам действительно с этого поста надо было начинать, а то напугали. Вам дали задание типа: "Копать от забора и до обеда". Типичная ситуация. Вам надо убедить начальство в необходимости перехода на 1С, там все это давно решено. Таким путем вы ничего не докажете, на новые технологии не переходят без переобучения персонала. Такой объем самостоятельно не разрабатывают и велосипед не изобретают. Найдите вскрытую, для начала пойдет 1С7, и освойте ее сами. Если же нет, то вам надо сначала изучить вопрос построения проектов, тем более что вы это понимаете. Каждая из этих задач довольно емкий проект. И убедиться, что ничего из этого вы не сделаете, запинаясь на каждом вопросе (даже в этом случае - никакой необходимости параллельной работы нет). И после этого уже более компетентно снова попытаться убедить в необходимости перехода на 1С. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 16:02 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
sg12, Когда передо мной поставили задачу, я сразу спросила - почему не 1С и мне ответили - своих специалистов-разработчиков нет, приглашенные с фирмы дорого и главное - когда какой-то "пожар", то с фирмы пока приедет, пока решит проблему, а "сделать надо было вчера" - поэтому фокс. Но мне интересно и в фоксе. так что - задание выполню в тех малых масштабах, которые от меня требуют. И пока прогу мою будут тестить, решать нравиться им или нет - последую вашему совету - изучу 1С. Спасибо всем, что не оставляете без внимания :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 17:29 |
|
Правильная организация структуры
|
|||
---|---|---|---|
#18+
mosalovasg12, Когда передо мной поставили задачу, я сразу спросила - почему не 1С и мне ответили - своих специалистов-разработчиков нет, приглашенные с фирмы дорого и главное - когда какой-то "пожар", то с фирмы пока приедет, пока решит проблему, а "сделать надо было вчера" - поэтому фокс. Но мне интересно и в фоксе. так что - задание выполню в тех малых масштабах, которые от меня требуют. И пока прогу мою будут тестить, решать нравиться им или нет - последую вашему совету - изучу 1С. Спасибо всем, что не оставляете без внимания :) Этот "пожар и дорого" решается тем, что при таком большом объеме надо самим изучать досконально 1С и становиться "своим" специалистом, чтобы не зависить от хапуг-фирмачей. В 1С тоже можно также программировать при необходимости. Программисты, знакомые с Foxpro, справляются с этим довольно быстро из-за схожести языков, непривычен только русский синтаксис (хотя есть и родной Engl). В малых дозах задание попробуйте, раз требуют, но с изобретением велосипеда вряд ли у вас что-то серьезное получится. Хотя бы из-за отчетности, каждый раз будете расхлебывать аврал под визги бухгалтеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 18:06 |
|
|
start [/forum/topic.php?fid=41&msg=38117971&tid=1583213]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 420ms |
0 / 0 |