2014-10-14 4 views
0

я написал окно формы приложения в C#, что делает журнал присутствие/задержки для сотрудников, и теперь я пытаюсь добавить функцию в том, что приложение, которое делает следующее:один ко многим отношений, основанные на дате

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

Чтобы сделать его более ясным:

  • Workers стол: где 1 означает, что работник присутствует или несвоевременное

ID - имя ---------- присутствие ----- задержка

1 - сэм -------------- 1 ---------- 0 ---

2- -jack ------------- 0 ---------- 0 ---

3 - Ted -------------- 1 ---------- 1 ---

  • Дата вылета:

День --------------- Настоящий ---- Задержка ----- отсутствует

14/10/2012 --------- sam- ------- ted ------- гнездо

------------------------ ted ------ ------------------

и так далее, я надеюсь, что сделал свою идею понятной.

Как будет выглядеть второй стол и как будет относиться?

как посмотреть результат, как в таблице даты?

ответ

1
--Person--   --Presence--  --Delay-- 
ID     ID     ID 
Name    Date    Date 
// other info  PersonID   PersonID 
        IsPresent 

Прежде всего, вы должны держать Person таблицу отдельно и использовать его ID я n других таблиц. Я настоятельно рекомендую прочитать около data redundancy и database normalization. PersonID в других таблицах см. ID в таблице Person.

Я думаю, что Presence должен быть зарегистрирован на каждый день. Delay должен быть зарегистрирован, если только Person появился в тот же день.

0

Возможно, вы захотите сделать что-то вроде этого, возможно, не на 100%, но должны заставить вас двигаться в правильном направлении. Бегите в любые другие вопросы, дайте мне знать, поможет, как я могу

стол: Сотрудники {Id, Name} таблица: пиловочник {EmployeeID, DateCreated, OnTime (немного ложь, если поздно)}

select Name 
Status = CASE WHEN OnTime = 1 THEN "On Time" 
     WHEN OnTime is null THEN "Absent" 
     ELSE "Late" 
from Employees as e 
left join Logs as l 
    on e.Id = l.EmployeeId 
Where l.DateCreated = @aDate 
or l.DateCreated is null 

в показывают данные, как вы ищете, чтобы затем стать задачей для двигателя отчета или сводную таблицу в зависимости от требований

Смежные вопросы