Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2012, 16:29   #1
MasterK
Пользователь
 
Регистрация: 27.08.2009
Сообщений: 28
По умолчанию Структура БД

Здравствуйте.
Помогите создать правильную структуру БД, чтобы правильно и простыми методами составить отчет.

Немного опишу структуры БД:
На каждого ФИО заключается ДОГОВОР об оказании услуг. По одному ДОГОВОРУ может оказываться множество УСЛУГ с соответствующими ЦЕНАМИ и прочим. Один человек (ФИО) может заключить множество ДОГОВОРОВ.

Из БД необходимо составить отчет. У меня возникает проблемка в формирование пункта отчета:

С 01.01.2012 по 07.07.2012 было обслужено N человек, заключено X договоров, выполнено услуг на Y руб.

Как говорил выше, человек может заключить множество договоров и по этому по запросу "С 01.01.2012 по 07.07.2012" мы получим из первой таблице количество ДОГОВОРОВ, а количество обслуженных людей будет не верно (на одного человека много договоров).

Наброски БД:


Подскажите пожалуйста как переделать структуру БД?
MasterK вне форума Ответить с цитированием
Старый 24.08.2012, 16:56   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

В таблицу ФИО добавьте поле Номер типа автоинкремент. В таблицу Договор добавьте поле Контрагент типа длинное целое, которое будет связано с полем Номер. При этом из обоих таблиц можно убрать поля Договор №.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 24.08.2012, 17:31   #3
MasterK
Пользователь
 
Регистрация: 27.08.2009
Сообщений: 28
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
В таблицу ФИО добавьте поле Номер типа автоинкремент. В таблицу Договор добавьте поле Контрагент типа длинное целое, которое будет связано с полем Номер. При этом из обоих таблиц можно убрать поля Договор №.
Не пойму как мне поможет это получить кол. людей за определенный период. На примере табл объяните пожл.

___________________________________ ______________________________
ф. | Имя. | Отчество.|соц. пол.| Договор № | дата |
------------------------------------------------------------------
Иванов | Иван | Иванович | Ветеран | 102 | 01.02.2012 |
------------------------------------------------------------------
Иванов | Иван | Иванович | Ветеран | 104 | 05.02.2012 |


___________________________________ ______________________________
Договор № | услуга | Количество |цена | Транспорт | Прим. |
------------------------------------------------------------------
102 | №1 | 2 | 20 | да | 1111 |
------------------------------------------------------------------
102 | №2 | 5 | 50 | нет | 2222 |

Блин съелись пробелы при добавлении в таблице.

Вот пример добавления данных в БД (делаю програмку):

Последний раз редактировалось MasterK; 24.08.2012 в 17:54.
MasterK вне форума Ответить с цитированием
Старый 24.08.2012, 17:48   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сделал бы 3 таблицы.
1. Человеки (ИД, ФИО и прочие плюшки)
2. Договора (ИД, дата и прочее) - внешюй ключ ИД записи таблицы Человеки
3. Услуги (ИД цена и т.д.) - внешюй ключ ИД записи таблицы Договора
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура DRELORD Помощь студентам 0 16.05.2010 22:53
Структура на С++ Darh Помощь студентам 3 16.12.2009 23:27
структура hungry Общие вопросы C/C++ 11 25.06.2009 20:31
структура Cpluser Общие вопросы C/C++ 4 16.06.2009 17:42
Структура SL1CK Общие вопросы C/C++ 8 08.06.2009 21:31