как разрешить потерянные наборы записей в таблицах моста многие-ко-многим - PullRequest
1 голос
/ 15 сентября 2010

У меня есть проблема, которую я не могу решить. У меня есть таблица: Программное обеспечение и стол: ПК

они оба имеют много-много отношений друг с другом, то есть один ПК может иметь много Программного обеспечения, а Одно Программное обеспечение может иметь много ПК таблица ссылок: soft-pc

Настольный софт-ПК также имеет информацию о лицензировании, например, ключи продукта.

Теперь проблема в том, что при удалении программного обеспечения с ПК запись удаляется из таблицы программного обеспечения. Теперь я хочу иметь возможность деинсталлировать программное обеспечение с ПК и по-прежнему хранить его в таблице программного обеспечения.

Возможно ли это?

Ответы [ 2 ]

2 голосов
/ 15 сентября 2010

Теперь я хочу иметь возможность деинсталлировать программное обеспечение с ПК и сохранять его в таблице программного обеспечения.

В этом суть проблемы.В настоящее время предикат отношения для таблицы soft-pc, то есть , означающий для конкретной записи в этой таблице, заключается в том, что соответствующее программное обеспечение находится на рассматриваемом ПК.Если вы сейчас хотите сказать, что в этой таблице может быть запись, когда не того программного обеспечения на этом ПК, вам придется решить, что такое предикат нового отношения.То есть:

Что означает , что означает наличие записи в таблице soft-pc?

1 голос
/ 15 сентября 2010

Вам потребуется удалить каскадные удаления из отношения, после этого мне представится две возможности:

  1. Добавить удаленную дату на программный ПК
  2. Переместить идентификатор компьютера вдругой столбец - это будет работать только в том случае, если уникальным ключом не является PCID + Soft ID.

Я бы предпочел перейти с # 1.

РЕДАКТИРОВАТЬ дополнительный пост

При желании вы можете иметь соединительную таблицу со всеми возможными комбинациями PC-Soft и код, указывающий, установлено ли программное обеспечение, деинсталлировано, никогда не будет установлено и т. Д., А также дата, когда статуспроизошло.Об этом подходе можно многое сказать.

...