Добрый день.
Возникла проблема с разработкой структуры БД.
Задача исходит от организации сервиса обслуживания (дальнейшее написание ПО под мобильные платформы, десктопное приложение)
Ну то есть БД делаю одну для всего сразу.
Есть такие таблицы:
-Завка (id_заявки, адрес, описание, стоимость, дата, статус открытая, статус выполняемая, статус закрытая)
-Сотрудник (id_сотрудника, ФИО)
-Клиент (Имя, контакт)
Подскажите, пожалуйста, как на фоне таких простых таблиц организовать взаимосвязь, что сотрудник взял заявку и она за ним числится? Он ее выполнил - она к нему в статус как закрытая попала.
Может, я неправильно структуру продумал.
Первый раз взялся за проектирование БД. Как тут лучше сделать?
Нет. В Статусе_заявки должны храниться только статусы: "Новая", "В обработке", "Завершена", "Отменена" и т.д. Текущий статус заявки вам нужно узнавать из таблицы История_статуса_заявки выбирая последнее значение статуса для определенной заявки.
Еще раз: в таблице Статус_заявки хранятся НАЗВАНИЯ статусов. В таблице История_статуса хранится ИСТОРИЯ ИЗМЕНЕНИЙ статусов. Ну допустим, было у вас при запуске проекта всего два статуса для задач "Новая" и "Выполнено", а потом понадобилось добавить еще с десяток - вот вам и первая причина хранить названия статусов отдельно. Далее, если вы будете в таблице История_статусов хранить вместо айдишника статуса его название, то это будет приводить к неоправданному росту занимаемого места таблицей, а это вовсе ни к чему.