Конференция "Базы" » Удалить запись, на которую ссылается другая таблица [D7]
 
  • Неважно (05.02.14 14:45) [0]
    Таблица "Оборудование":
    -ID
    -Название

    Таблица "Тип оборудования"
    -ID
    -ID таблицы "Оборудования"
    -Название

    Таблица "Сервис"
    -ID
    -ID таблицы "Тип оборудования"
    -дата, зав.номер и т.д.

    Вопрос следующий. Предположим, прошло время и некоторый девайс нужно удалить из таблицы "Тип оборудования".
    Но удалить его нельзя, т.к. он связан с другой таблицей (таблица "Сервис"). Варианты?

    Придумалось, так:
    Таблица "Тип оборудования"
    -ID
    -ID таблицы "Оборудования"
    -Название
    -Bool (отображать/скрывать)

    Насколько правомерно? Или есть другие варианты?
    Спасибо!
  • Ega23 © (05.02.14 15:12) [1]
    Если его надо удалить, то - удалять. Если надо скрывать - то скрывать.
    правомерно или нет - зависит от того, есть ли в твоём диалекте DDL тип Bool. Если есть - то правомерно. Если нет - то будет ошибка.
  • stas © (05.02.14 15:13) [2]
    Смотря какая задача.
    Можно удалить и из таблицы "Сервис"
  • Jeer © (05.02.14 16:12) [3]
    Обычно в сервисе хранятся операции по данному оборудованию.
    Если история не важна, то при удалении оборудования удалются и все записи о нем в  сервисе.
    Если история сервиса важна, то в оборудовании заводится признак "Списан" и, при необходимости накладывается фильтр.
  • Неважно (05.02.14 16:15) [4]
    Задача стоит следующая:данные  из  таблицы "Сервис" нельзя удалять. И если оборудование больше не выпускают, то история по этому оборудования должна жить.

    Ну, Bool или smalInt или еще как — неважно.

    Сам подход "православный"?  Или можно что-то иначе?
  • Ega23 © (05.02.14 16:22) [5]

    > Сам подход "православный"?


    Вполне.


    > Или можно что-то иначе?


    Можно. Можно создать отдельную таблицу "удалённые". Можно и ещё сильнее извратиться. Но это в случае, когда записей реально дофига, сотни миллионов.
  • oldman © (06.02.14 10:59) [6]

    > Таблица "Оборудование":
    > -ID
    > -Название
    >
    > Таблица "Тип оборудования"
    > -ID
    > -ID таблицы "Оборудования"
    > -Название


    Работать с

    Таблица "Оборудование":
    -ID
    -Название
    -Тип
 
Конференция "Базы" » Удалить запись, на которую ссылается другая таблица [D7]
Есть новые Нет новых   [118759   +80][b:0][p:0]