|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.08.2012, 16:29 | #1 |
Пользователь
Регистрация: 27.08.2009
Сообщений: 28
|
Структура БД
Здравствуйте.
Помогите создать правильную структуру БД, чтобы правильно и простыми методами составить отчет. Немного опишу структуры БД: На каждого ФИО заключается ДОГОВОР об оказании услуг. По одному ДОГОВОРУ может оказываться множество УСЛУГ с соответствующими ЦЕНАМИ и прочим. Один человек (ФИО) может заключить множество ДОГОВОРОВ. Из БД необходимо составить отчет. У меня возникает проблемка в формирование пункта отчета: С 01.01.2012 по 07.07.2012 было обслужено N человек, заключено X договоров, выполнено услуг на Y руб. Как говорил выше, человек может заключить множество договоров и по этому по запросу "С 01.01.2012 по 07.07.2012" мы получим из первой таблице количество ДОГОВОРОВ, а количество обслуженных людей будет не верно (на одного человека много договоров). Наброски БД: Подскажите пожалуйста как переделать структуру БД? |
24.08.2012, 16:56 | #2 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
В таблицу ФИО добавьте поле Номер типа автоинкремент. В таблицу Договор добавьте поле Контрагент типа длинное целое, которое будет связано с полем Номер. При этом из обоих таблиц можно убрать поля Договор №.
Правильно поставленная задача - три четверти решения.
|
24.08.2012, 17:31 | #3 | |
Пользователь
Регистрация: 27.08.2009
Сообщений: 28
|
Цитата:
___________________________________ ______________________________ ф. | Имя. | Отчество.|соц. пол.| Договор № | дата | ------------------------------------------------------------------ Иванов | Иван | Иванович | Ветеран | 102 | 01.02.2012 | ------------------------------------------------------------------ Иванов | Иван | Иванович | Ветеран | 104 | 05.02.2012 | ___________________________________ ______________________________ Договор № | услуга | Количество |цена | Транспорт | Прим. | ------------------------------------------------------------------ 102 | №1 | 2 | 20 | да | 1111 | ------------------------------------------------------------------ 102 | №2 | 5 | 50 | нет | 2222 | Блин съелись пробелы при добавлении в таблице. Вот пример добавления данных в БД (делаю програмку): Последний раз редактировалось MasterK; 24.08.2012 в 17:54. |
|
24.08.2012, 17:48 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Сделал бы 3 таблицы.
1. Человеки (ИД, ФИО и прочие плюшки) 2. Договора (ИД, дата и прочее) - внешюй ключ ИД записи таблицы Человеки 3. Услуги (ИД цена и т.д.) - внешюй ключ ИД записи таблицы Договора
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Структура | 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 |