|
|
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Есть записи по пользователям. В зависимости от группы планирую подгружать данные из соответствующих таблиц. Теперь о проблеме. Программа раньше использовалась в учреждении где USE_ID в таблице USERS был первичным ключом, который заполняли табельным номером. У нас же в организации в этом деле просто хаос. Табельный номер может меняться периодически. Плюс новому человеку могут дать табельный номер уволенного человека. Т.е. однозначности нету. Поэтому вынес табельный номер в отдельное поле. Далее, необходимо делать синхронизацию по пользователям, с ERP системой Парус. Т.е. человек нажал на кнопку и загрузил пользователей из Паруса, для того что-бы можно было не тратить время на ручное добавление. Вот тут возникает дилемма. В программе есть ручной ввод пользователей. Но тут получается что человек вбил пользователя вручную, и нажал на кнопку Синхронизации. А в базе есть другой пользователь, с таким-же табельным, но другим Ф.И.О. Как выходить из этой ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 13:20 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
HopkroftКак выходить из этой ситуации? Поскольку в ОК организации бардак, значит она скорее всего маленькая. Раз она маленькая, значит вероятность работы в ней полных тёзок тоже маленькая. Считай идентификатором человека ФИО. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 13:29 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, если бы всё было так просто. На данный момент в организации 500 человек. С "двойниками" уже встречался:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 13:35 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
HopkroftС "двойниками" уже встречался:( Добавь в идентифицирующие поля дату рождения. Обычно этого хватает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 13:41 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovHopkroftС "двойниками" уже встречался:( Добавь в идентифицирующие поля дату рождения. Обычно этого хватает. Я рассматривал этот вариант. Но получается что мне нужно добавить в первичный ключ, Ф.И.О. и дату рождения. Т.к. на USE_ID очень много завязано(хранимки, записи в других таблицах). Вот и хочу довести эту программу для нашей организации с её безобразиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 13:54 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, за вашу практику хоть раз встречался случай когда Ф.И.О. и год рождения были одинаковы у двух разных людей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 13:57 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
HopkroftНо получается что мне нужно добавить в первичный ключ, Ф.И.О. и дату рождения. Нет, достаточно эти поля использовать для идентификации вместо первичного ключа. Для особой надёжности на них можно создать отдельный unique constraint. Hopkroftза вашу практику хоть раз встречался случай когда Ф.И.О. и год рождения были одинаковы у двух разных людей? Да. Мой приятель троллил этим военкомат. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:06 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
HopkroftКак выходить из этой ситуации? Никак, в общем случае задача не решается. А в частности искать - уникальные естественные ключи. Причем ФИО не может подойти (привет полные однофамильцы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:41 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
mad_nazgul Никак, в общем случае задача не решается. Хорошо, нужно добавить, возможность от "порчи" данных. 1. А если при экспорте добавить, фишку, когда мы встречаем пользователя, с имеющимся, табельным номером, то программа предложит обновить по нему данные. Т.е. загрузить ту информацию которая содержится в базе. 2. Добавить поле, приёма на работу и увольнения. Таким образом безболезненно могут существовать 2 человека с одинаковыми табельными номерами. Поле, USE_ID, сделать автоинкрементном. (На него очень много завязано.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 15:01 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Hopkroftmad_nazgul Никак, в общем случае задача не решается. Хорошо, нужно добавить, возможность от "порчи" данных. 1. А если при экспорте добавить, фишку, когда мы встречаем пользователя, с имеющимся, табельным номером, то программа предложит обновить по нему данные. Т.е. загрузить ту информацию которая содержится в базе. Как различать людей. Если при импорте получится, что таких людей больше чем один, то нужно дать возможность оператору выбора, что делать. Hopkroft2. Добавить поле, приёма на работу и увольнения. Таким образом безболезненно могут существовать 2 человека с одинаковыми табельными номерами. Поле, USE_ID, сделать автоинкрементном. (На него очень много завязано.) Можно и так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 15:29 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, а вот мне интересна следующая ситуация, имевшая место быть в нашей организации. Человек уволился, а потом его опять приняли на работу. Т.е. в идеале, нужно сделать таблицу, пользователи ->табельные номера. Где табельные номера включают поля, USER_ID , ID -идентификатор табеля, DATE_BEG -дата выдачи, DATE_END - дата окончания, REASON - причина окончания(изменение штатного, уволили и т.д.)) - возможно связать по внешнему ключу с таблицей значений. Не внесёт ли это избыточность? P.S. эту идеологию подсмотрел в Парусе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2013, 12:02 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Hopkroftmad_nazgul, а вот мне интересна следующая ситуация, имевшая место быть в нашей организации. Человек уволился, а потом его опять приняли на работу. Т.е. в идеале, нужно сделать таблицу, пользователи ->табельные номера. Где табельные номера включают поля, USER_ID , ID -идентификатор табеля, DATE_BEG -дата выдачи, DATE_END - дата окончания, REASON - причина окончания(изменение штатного, уволили и т.д.)) - возможно связать по внешнему ключу с таблицей значений. Не внесёт ли это избыточность? P.S. эту идеологию подсмотрел в Парусе. Это стандартная ситуация. Вообще-то табельный номер - это частности, которые определяются "политикой" кадрового отдела и бухгалтерии. Т.е. по большому счету надо хранить "личную карточку" с историей изменений. В т.ч. и табельного номера. P.S. по мне лучше что-то хранить избыточно, чем потом "кусать локти", что каких-то данных нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2013, 16:17 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Я правильно понял ситуацию, что таблица будет примерно следующей: К примеру таблица Reason выглядет следующей. REASON id, caption . . . 2, Смена табельного номера 3, Увольнение по собственному желанию USER_ID, ID, DATE_BEG, DATE_END, REASON 123, 12, 12.05.2012, 11.06.2012, 23 - новая должность к примеру 123, 15, 12.06.2012, 15.01.2013, 3 - уволился 123, 25, 12.12.2014, NULL, NULL - был опять принят на работу Тогда есть несколько вопросов: 1. для определения табельного номера человека нужно просто найти в таблице последнюю запись по нему? 2. при приёме в отделе кадров, программа долна их оповестить что данный человек уже есть, и ему достаточно присвоить новый табельный? 3. А может ли быть, в один день у человека 2 табельных номера? Допустим когда переводят его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2013, 18:19 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Hopkroftmad_nazgul, Я правильно понял ситуацию, что таблица будет примерно следующей: Да. Можно и так. Я бы кончено ввел сущность "Приказ", где бы вводились приказы по человеку и его перемещения. Еще можно тупо сделать как в форме Т1. Там на линиях есть все движения сотрудника. Т.е. прием на работу, перемещение и увольнение. Ну и изменяемые параметры хранить с (DateFrom, DateTo). В т.ч. и ФИО, паспорт и т.д. ;-) Насчет увольнения и приема. Считать человека новым сотрудником или старым... Это правильнее всего отдать на усмотрение ОК, точнее кадровой политики. Если они решат, что история вновь принятого сотрудника, должна продолжаться, то у них должна быть возможность поднять "архив" личных карточек. Если нет, то заводится новая личная карточка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2013, 08:19 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
mad_nazgulЯ бы кончено ввел сущность "Приказ", где бы вводились приказы по человеку и его перемещения. Еще можно тупо сделать как в форме Т1. Спасибо, за совет. Мысль хорошая, буду в эту сторону смотреть. mad_nazgulСчитать человека новым сотрудником или старым... . . . Если нет, то заводится новая личная карточка. Вот за эту мысль огромное спасибо! Я что-то эту ситуацию упустил из виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2013, 08:49 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Hopkroft, авторПлюс новому человеку могут дать табельный номер уволенного человека А вот за это начальника OK надо в шею гнать. Аудит бухгалтерский коту под хвост - однозначно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2013, 03:14 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Alexander2, ну они у себя в Парусе присваивают им какие-то левые табельные, что-бы они с новыми не пересекались. А мне голову ломать как это всё совместить:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2013, 08:11 |
|
||
|
Сохранение однозначности записей
|
|||
|---|---|---|---|
|
#18+
Alexander2Hopkroft, авторПлюс новому человеку могут дать табельный номер уволенного человека А вот за это начальника OK надо в шею гнать. Аудит бухгалтерский коту под хвост - однозначно. С такой ситуацией я сталкиваюсь не первый раз. Целостность в рамках "сейчас" не нарушена. Бухгалтерия так же оперирует "сейчас". А история... пусть с эти программист возиться. :-) Поэтому я не воспринимаю табельный номер как уникальный ключ. И другим не советую. Табельный номер это для ОК и бухгалтерии, чтобы они знали кому какую ЗП начислить в данный месяц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2013, 10:21 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38345168&tid=1541159]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 522ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...