-
Таблица "Оборудование": -ID -Название
Таблица "Тип оборудования" -ID -ID таблицы "Оборудования" -Название
Таблица "Сервис" -ID -ID таблицы "Тип оборудования" -дата, зав.номер и т.д.
Вопрос следующий. Предположим, прошло время и некоторый девайс нужно удалить из таблицы "Тип оборудования". Но удалить его нельзя, т.к. он связан с другой таблицей (таблица "Сервис"). Варианты? Придумалось, так: Таблица "Тип оборудования" -ID -ID таблицы "Оборудования" -Название -Bool (отображать/скрывать)
Насколько правомерно? Или есть другие варианты? Спасибо!
-
Если его надо удалить, то - удалять. Если надо скрывать - то скрывать. правомерно или нет - зависит от того, есть ли в твоём диалекте DDL тип Bool. Если есть - то правомерно. Если нет - то будет ошибка.
-
Смотря какая задача. Можно удалить и из таблицы "Сервис"
-
Обычно в сервисе хранятся операции по данному оборудованию. Если история не важна, то при удалении оборудования удалются и все записи о нем в сервисе. Если история сервиса важна, то в оборудовании заводится признак "Списан" и, при необходимости накладывается фильтр.
-
Задача стоит следующая:данные из таблицы "Сервис" нельзя удалять. И если оборудование больше не выпускают, то история по этому оборудования должна жить. Ну, Bool или smalInt или еще как — неважно.
Сам подход "православный"? Или можно что-то иначе?
-
> Сам подход "православный"?
Вполне.
> Или можно что-то иначе?
Можно. Можно создать отдельную таблицу "удалённые". Можно и ещё сильнее извратиться. Но это в случае, когда записей реально дофига, сотни миллионов.
-
> Таблица "Оборудование": > -ID > -Название > > Таблица "Тип оборудования" > -ID > -ID таблицы "Оборудования" > -Название
Работать с
Таблица "Оборудование": -ID -Название -Тип
|