Другие языки программирования и технологии

Вопрос по БД на access

Собственно делаю БД Автосервис, только вот думаю как лучше сделать: завести отдельную таблицу для всех клиентов, и потом путём связей использовать в таблице Заказа-Наряда, или лучше просто запросом потом отобрать из таблы Заказ-.наряда всех клиентов группировкой и т.д.? Какой способ более гибкий?
Petr Brejnev
Petr Brejnev
1 561
Да тут не в гибкости дело, а в логической структуре вашей БД, Почитайте какие-нить книжки или статьи про проектирование реляционных БД, про избыточность и т. п. Само собой напрашивается, что клиенты должны в отдельной таблице: там же и их контактные данные. И как вы клиентов будете из Заказ-нарядов отбирать? А если попались однофамильцы (да еще и тезки - не смейтесь, мне недавно из московского представительства Skoda так позвонили: однофамилец и тезка (только отчество другое) в нашем городе имеет авто Skoda, но другой модели) ? А если допустили ошибку в имени (и тогда получается 2 клиента в БД, а на самом деле - один) . Заказ-наряды - в отдельной таблице. Что там в заказ-нарядах используется? Виды работ? Тоже - в отдельную таблицу (с ценами и прочей шелухой) . И все эти таблицы будут связаны с Заказ-нарядом.

Словом, почитайте про проектирование баз данных.
СЕ
Сергей Ермоленко
43 609
Лучший ответ
Petr Brejnev впрочем я изначала так и думал, что клиенты должны быть в отдельной таблице, почитать: мот книгу посоветуете? и ещё я думаю будет лучше сделать так: в табле Заказ-Наряд используем чисто ID, IDKlienta, IDAvto, NomerAvto и т.д., в табле Specifikacia Используем IDZakazaNariada и пишем вид работы, мастер, стоимость, или лучше сделать так: SpecifikaciaZakNar в ней чисто IDZakNariada и IDRaboty, где IDRaboty - связанное поле с ещё одной таблицей (Raboty) где указываются все виды ремонтных работ и их стоимости, но тогда возникает вопрос, ведь если в 2008 году к примеру я менял ГРМ за 50$, то в 2011 допустим за 70$ то полетят все ранее выписанные Работы, т.к. изменится поле стоимость в таблице справочнике работ и их стоимостей, а при раскладе Просто SpecifikaciaZakNariada в ней указывать IDZakNar и ручками писать вид работы и стоимость в таблице SpecifikaciaZakNar без лишних справочников???
Я не понял - у тебя что, клиенты в таблице заказ-наряд? А 1НФ как же?
Petr Brejnev мле, вопрос читай внимательно, я спрашиваю как лучше делать
Вы путаетесь. В случае с клиентами и работами это всё таблицы справочники. А все данные включая код работы и её цену надо сохранять в заказ наряде. Проще говоря справочник содержит актуальное наименование и цену работы или актуальную фамилию клиента. Фамилия клиента не оч важна (она даже при изменении не повлияет на заказ наряд) и достаточно сохранять код клиента в документе (заказ-наряде) а вот цена критична и потому в документе должны сохраняться как код работы так и её цена на момент формирования документа.
С.
Сергей ...
2 941