|
|
|
Помогите спроектировать таблицы, работа с датами.
|
|||
|---|---|---|---|
|
#18+
Создается БД на MySQL, интерфейс пишется на Delphi 2009 с использованием ZEOS 7.0.0. Подскажите, как организовать таблицы в БД, чтобы для пользователя информация выводилась в виде как в прикрепленном файле? * №автомобиля, ФИО берутся из справочников * Номер смены должен проставляться пользователем и заноситься в БД * Столбец «Отработано» рассчитывается, исходя из справочника (Смена; Кол-во часов) 1) Главный вопрос как сделать поля, в которые проставляется смена, так чтобы таблица содержала только числа следующего месяца(т.е. в разное время то 30, то 31 то 28 столбцов) 2) Как хранить занесенные в таблицу значения смен на каждую дату с учетом необходимости различных расчетов по строке и по столбцу? 3) Как в таком случае лучше сделать таблицы и связи между ними? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2012, 15:00 |
|
||
|
Помогите спроектировать таблицы, работа с датами.
|
|||
|---|---|---|---|
|
#18+
Sobart1) Главный вопрос как сделать поля, в которые проставляется смена, так чтобы таблица содержала только числа следующего месяца(т.е. в разное время то 30, то 31 то 28 столбцов) никаких "30, то 31 то 28 столбцов" ! - таблица должна быть {id_кого-то-там,дата,отработано} свою красивую таблицу, затем будеш получать запросом с Код: sql 1. 2. 3. 4. Sobart3) Как в таком случае лучше сделать таблицы и связи между ними? ты бы, чтоле, описал задачу, сначала ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2012, 15:30 |
|
||
|
Помогите спроектировать таблицы, работа с датами.
|
|||
|---|---|---|---|
|
#18+
Sobart интерфейс пишется на Delphi 2009 с использованием ZEOS 7.0.0.Это не важно Sobart №автомобиля, ФИО берутся из справочников Код: sql 1. 2. Так же в справочнике должны быть номера смен. create table work_shift(work_shift_id, work_shift_name varchar(10)) С отпуском выходными есть два подхода быстрый и правильный. Правильный - создаем дополнительный справочник причин не выхода наработу create table no_wokring_reason(no_wokring_reason_id int,no_wokring_reason_descr varchar(20)) и требуем (путем check ограничения) чтобы заполнено (было не null) только одно поле work_shift_id или no_wokring_reason_id Быстрый способ это добавление в work_shift специальных смен - отпуск, больничный, выходной и т.п. Для маркировки их (work_shift_id) можно сделать отрицательными или добавить специальный флажок. Sobart Как хранить занесенные в таблицу значения смен на каждую дату с учетом необходимости различных расчетов по строке и по столбцу? Код: sql 1. Sobart как сделать поля, в которые проставляется смена, так чтобы таблица содержала только числа следующего месяца(т.е. в разное время то 30, то 31 то 28 столбцов)Транспонируя запрос к work. Как это сделать ищите по форуму. Вам придется придумать что ставить в пропуски (если какого либо числа, первого января например, никто не ездил) для этого стоит завести таблицу календарь и заполнить ее всеми датами подряд Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2012, 15:33 |
|
||
|
Помогите спроектировать таблицы, работа с датами.
|
|||
|---|---|---|---|
|
#18+
SERG1257, Спасибо, очень масштабно все объяснили :) Скоро проверю как оно будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2012, 15:49 |
|
||
|
Помогите спроектировать таблицы, работа с датами.
|
|||
|---|---|---|---|
|
#18+
qwerty112, SERG1257 Спасибо Вам, Таблицы организовал как писал SERG1257, а вывод в форму пользователя с помощью запроса, похожего на предложенный qwerty112-м: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Наверное, если этот запрос немного доделать, то можно будет при необходимости динамически избавляться от 31 числа, изменяя только таблицу calendar. В SQL пока не силен, но с Вашим форумом все просто. Надеюсь, в скором времени таких глупых вопросов задавать не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 01:47 |
|
||
|
Помогите спроектировать таблицы, работа с датами.
|
|||
|---|---|---|---|
|
#18+
Нет запрос должен быть Код: sql 1. 2. 3. Суть в том, чтобы позиция была даже если никакой активности в этот день не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 05:24 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1541760]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 412ms |

| 0 / 0 |
