|
|
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
А какая необходимость вообще распространять ограничения на даты? Это же интервалы времени. Могут ли они пересекаться? как отслеживается такая ситуация? может имеет смысл сделать суррогатный ключ и добавить индекс по (idKadr, idDept) и при необходимости на даты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 13:01:10 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
to AVL Предложенный вариант усложняет немало, однако в исходном виде в проекте, я согласен с Genady, есть ошибки. И я их не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 13:05:19 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
давайте по порядку: может ли человек работать в бригаде несколько раз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 13:12:03 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
может ли он одновременно работать в нескольких бригадах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 13:16:40 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
новаю таблицу kadrdept(idKadr, idDept, idSurrogate) и дополнительную таблицу history(idSurrogate, dBeg, dEnd). Плохое решение и непонятно чем мотивировано. Вы или подробно опишите задачу или решайте все сами, с теми данными которые Вы предоставили Вам никто ничего толкового не скажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 13:19:35 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
to AVL 1. Человек в течении месяца может быть переведен в другую бригду неоднократно (более 2-х раз). 2. В каждый момент времени человек может работать только в одной бригаде. 3. Согласованность дат, - требуется только их непересекаемость, отслеживается логикой работы с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 13:22:42 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
Pk: idKadr, idDept, dbeg. Все в одной таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 13:26:09 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
Задача такова: 1. Существуют работники. 2. Существуют бригады. 3. В каждый момент времени работник может работать не более чем в одной бригаде, или ни в какой. Момент времени - это дата. 4. В любой момент времени работник может быть переведен в другую бригаду, или перестать работать в какой л.б. Требуется на произвольный момент времени предоставить отчет о списке работников, работающих в данной бригаде. А также списочный состав всех бригад на произвольный момент времени. Приведенное мной на форуме решение содержит ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 13:41:10 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
2 sql В Вашем первом варианте, кроме отсутствия РК я ошибок не вижу, вариант РК предложил AVL я с ним согласен. Кроме того, если человек на может работать одновременно в нескольких бригадах я бы добавил еще одно поле CurrentWork которое являлось бы флажком для обозначения того, что запись не является историей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 14:16:24 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
Нет снимаю предложение с добавлением поля, для определения исторических записей вполне подойдет dEnd. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 14:17:59 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
Я просто очарован: обновлення сущность kadrDepartament(idKadr, idDepartament, dateEnd) позволяет решить задачу, и, как всякая реляционная имеет PK as {idKadr, idDepartament, dateEnd}. Я правильно все понял ? Если так, то какой бес навеял мне использование именно пары дат ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 14:35:44 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
а как же дата начала работы dbeg? уфф... у меня уже брожение мозгов.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 14:41:32 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
kadrDepartament(idKadr, idDepartament, dateBegin, dateEnd) PK - idKadr, idDepartament, dateBegin FK - idKadr FK - idDepartament ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 14:54:12 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, занесло. Структура таблицы kadrDept не меняется, но, по условиям задачи (в каждый момент времени работник в одной бригаде) в качестве PK может использоваться набор {idKadr, idDept, dBeg}. По-моему, так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 15:01:28 |
|
||
|
использование PrimaryKey
|
|||
|---|---|---|---|
|
#18+
Genady, AVL ! Спасибо. И всем, кто помог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2002, 15:08:13 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32040301&tid=1821412]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 433ms |

| 0 / 0 |
