Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / вход сотрудников и гостей на предприятие / 8 сообщений из 8, страница 1 из 1
14.03.2009, 08:03
    #35868977
Barm2012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вход сотрудников и гостей на предприятие
сложность заключается в том, что они входят через один турникет, соответственно считыватель номера пропуска (постоянного у сотрудников и временного у гостей) - один. Поэтому непонятно из какой таблицы искать номер отсканированного пропуска.
У меня есть 2 решений этой проблемы. Может быть кто-то предложит свой вариант.
1. сделать таблицу пропусков

|_id_propusk_|_id_sotr_|_id_guest_|
| 100 | 1 | null |
| 1001 | null | 1 |

то есть, если стоит что то в колонке id_sotr то это сотрудник, если в id_guest то гость.

2. способ
2 таблицы, в которых записаны номера пропусков гостей и сотрудников и другие необходимые данные. у них одинаковые первые колонки - n_propuska - которые генерируются по одному секъюинсу, то нет одинаковых ключей в двух таблицах.

Вот как то так, у вас есть другие варианты?
...
Рейтинг: 0 / 0
14.03.2009, 11:36
    #35869088
sti
sti
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вход сотрудников и гостей на предприятие
3. |_id_propusk_|_id_person_|
...
Рейтинг: 0 / 0
15.03.2009, 15:16
    #35869935
Barm2012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вход сотрудников и гостей на предприятие
а для людей (сотрудников и гостей) делать одну общую таблицу?
в первом варианте предполагалось, что id_sotr это внешний ключ в таблицу отдела кадров, а id_guest внешний ключ в таблицу гостей с информацией о гостях (фио, паспортные данные и прочие)
...
Рейтинг: 0 / 0
15.03.2009, 18:56
    #35870038
mvb
mvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вход сотрудников и гостей на предприятие
Barm2012в первом варианте предполагалось, что id_sotr это внешний ключ в таблицу отдела кадров, а id_guest внешний ключ в таблицу гостей с информацией о гостях
так не получится, если ключ не может быть null (ну или придется целостность реализовывать на триггерах). Возможно, проще считывать только ID_пропуска, а сведения о владельце (работник/гость) хранить в таблице пропусков. Обработка данных, полагаю, будет различна для гостей и работников (упрощенно, в одном случае требуется контроль опозданий, в другом - обратного выхода)...
...
Рейтинг: 0 / 0
15.03.2009, 20:02
    #35870103
Barm2012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вход сотрудников и гостей на предприятие
а таблицу пропусков вы как себе представляете? как в моем первом варианте?
...
Рейтинг: 0 / 0
15.03.2009, 21:18
    #35870177
Санчес
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вход сотрудников и гостей на предприятие
Например, у меня в похожей системе сейчас сделана таблица пропусков cards, таблица работников employees и таблица посетителей guests.
Связь между таблицами сделана через промежуточные таблицы employees_to_cards(employee_id, card_id) и guests_to_cards(guest_id, card_id), чтобы не пихать во внешний ключ NULL.
Триггеры отслеживают, чтобы карта не была приписана одновременно работнику и посетителю.
...
Рейтинг: 0 / 0
16.03.2009, 00:32
    #35870344
вход сотрудников и гостей на предприятие
таблица карт связывает код карты, код владельца карты и категорию владельца.В зависиимости от категории информация о нем омжет храниться в разных таблицах и даже базах данных. У нас - это сотрудниики, студенты, внешние пользователи. Три категории, три базы, три таблицы.
...
Рейтинг: 0 / 0
16.03.2009, 11:20
    #35870890
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вход сотрудников и гостей на предприятие
СанчесНапример, у меня в похожей системе сейчас сделана таблица пропусков cards, таблица работников employees и таблица посетителей guests.
Связь между таблицами сделана через промежуточные таблицы employees_to_cards(employee_id, card_id) и guests_to_cards(guest_id, card_id), чтобы не пихать во внешний ключ NULL.
Триггеры отслеживают, чтобы карта не была приписана одновременно работнику и посетителю.Почитайте здесь .
Кратко - делается одна общая таблица: Люди.
Люди могут быть : либо сотрудниками, либо Гостями.
Карточки связываются с таблицей "Люди".

Никаких триггеров не надо, надо только иметь сквозную нумерацию в двух таблицах вместе: Сотрудники и Гости.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / вход сотрудников и гостей на предприятие / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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