Каков наилучший способ представления расписаний в базе данных - PullRequest
0 голосов
/ 12 марта 2009

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

Как лучше всего представить их в базе данных

Разрабатывая больше по вопросу: мое самое большое затруднение - как сохранить дату, часы, проект вместе

Одно из возможных решений

Пользователь (PK ID, имя)

Проект (PK ID, имя, FK user_id)

BillableHour (идентификатор PK, идентификатор проекта FK, часы, дата)

Спасибо

Ответы [ 4 ]

1 голос
/ 12 марта 2009

Начните с нужных вам отчетов и работайте задом наперед.

Минимальная единица ввода - активность, длительность, но если вы используете этот минимум, вы получите такие действия, как sri.attends.scrum.for.parisian.branch.of.client50.via.scype.from.home. to.discuss.installation.routine.of.zoom22, и в вашем отчете будет много операторов switch.

Предположительно, у вас будет хотя бы один отчет с именем, описанием деятельности и общим временем за определенный период времени. Если это ваш единственный отчет, вы можете реализовать его в виде списка из четырех полей: Рабочий (строка), Задача (строка), Начало (время), Продолжительность (целое число). Если есть отчет с запросом обо всех действиях, когда-либо выделенных для конкретного проекта, или отчет за все время, потраченное на тип деятельности X, или отчет, который распределяет действия по конкретным клиентам, ваш дизайн получит выгоду от дополнительных полей.

Возможно, у вас есть отчет, который различает установку .server.updates в домашнем офисе и установку .server.updates под активным вражеским огнем в зоне боевых действий. Если на экране регистрации времени установлен флажок while.a.target, это может сэкономить время пользователям.

0 голосов
/ 12 марта 2009

Вот краткое (и неполное) краткое изложение некоторых таблиц, которые использовала моя старая учетная система:

  • пользователь : лицо, использующее систему; имя, пароль и т. д.
  • субъект : компания или бизнес; имя, правительственные идентификаторы и т. д.
  • проект : проект, на который можно выставить счет; наименование, организация-поставщик, организация-клиент
  • расписание : запись в расписании: пользователь, проект, время / дата начала, количество часов, описание работы
0 голосов
/ 12 марта 2009

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

В данный момент у меня нет удобной диаграммы ER, которой можно поделиться, но в любом случае это всего лишь базовая отправная точка для набора таблиц.

Пользователь ID PK

UserRole UserID FK RoleID FK

Роль ID PK Имя

UserProject ID PK UserID FK ProjectID FK HoursAvailable

Клиент ID PK Имя

Проект ID PK CustomerID FK

EntryType ID PK Имя (то есть оплачиваемое, не подлежащее оплате и т. Д.)

запись ID PK UserID FK ProjectID FK EntryTypeID FK часов Дата TaskName (это может быть дополнительно нормализовано, особенно если вы хотите иметь набор задач) Описание

Я мог бы продолжить, но вы поняли идею.

0 голосов
/ 12 марта 2009

Стоит узнать о Нормальных формах, если вы с ними не знакомы. Спасает вас от хранения избыточных данных в вашей базе данных (среди прочих преимуществ).

http://databases.about.com/od/specificproducts/a/firstnormalform.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...