Я бы использовал первый дизайн: одну таблицу базы данных. Как сказал Cade Roux, сущности очень похожи и будут иметь схожие ограничения и общий набор операций. Кроме того, я предлагаю переименовать поле start
в поле с именем type
с типом данных enum
.
Предположим, в какой-то момент вы хотели бы записывать другое время, а не только время начала и окончания. Наиболее очевидный пример - работодатели, записывающие перерывы между работниками. Некоторые работодатели платят своим работникам за короткие перерывы, возможно, продолжительностью 15 минут или меньше. Вы не хотите, чтобы они полностью выбили (т. Е. Ушли "вне времени"), но вы do хотите указать тот факт, что они начали свой период перерыва, для расчет заработной платы и законные цели (например, обязательные перерывы каждые n
часов, как того требует закон).
Table "TimeLog"
---------------
job_id : LONG
timestamp : TIMESTAMP
type : ENUM [ "punch-in", "punch-out", "break-start", "break-stop" ]
_id : LONG
Это можно легко сделать с помощью поля type
с типом данных enum
. Вы можете иметь punch-in
, punch-out
, break-start
и break-stop
, в случае вышеприведенного примера.