2013-06-25 2 views
1

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

Этого можно легко достичь, если я добавлю новую строку для каждого времени и времени. Но проблема в том, что число сотрудников очень велико, поэтому Я хочу добавить timein и timeout горизонтально, а не вертикально.

Как это можно сделать? например

ID | Штрих-код | дата | время в | время ожидания | время в | время ожидания | ....... | общее время

+3

С логической точки зрения базы данных ваш запрос неверен. Добавьте записи для каждого события ввода/вывода и дайте базе данных обработать «лишние строки». – Steve

+2

Не знаете, как и почему вы хотите сделать это таким образом, но определенно не хороший дизайн для любого db. Если число MAX раз, когда работник может делать IN и Out, то вы можете думать о том, чтобы сделать их в cols else, он всегда должен быть в строках. Еще раз, почему вы боитесь сделать их рядами, даже если есть огромное количество сотрудников? –

+0

Фактически я делаю и приложение, которое может обрабатывать 90k пользователей, поэтому, если я создаю 5-10 строк для каждого сотрудника, чем обработчик базы данных, то – Mohsin

ответ

0

Я согласен с комментариями, что вы должны хранить данные вертикально, потому что это лучший дизайн и использует «реляционный» аспект базы данных. Основываясь на вашем описании системы, насчитывающей около 90 000 сотрудников, и может составлять 5-10 строк на одного сотрудника в таблице (90k * 10) .... вы должны рассмотреть возможность наличия индекса в поле идентификатора сотрудника (FK), чтобы ваши запросы были более эффективным. Используя индекс, вы сможете хранить много записей и не видеть никаких проблем с производительностью.