Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Имеем два варианта связывания модели: ЛИБО а) 1. Две связанных сущности - МЕСТО(PK:PlaceID, PlaceName) и ОБОРУДОВАНИЕ(PK:HwID, HwName, FK:PlaceID) 2. Каждая запись в ОБОРУДОВАНИИ должна быть обязательно привязана(NOT NULL) к сущности МЕСТО, по вторичному ключу PlaceID(NOT NULL) 3. При удалении записи в таблице МЕСТО, удаляются все связанные записи в таблице ОБОРУДОВАНИЕ (DELETE CASCADE) Плюсы: удобство в контроллере для управления сущностями в БД Минусы: удаляются все! связанные с МЕСТОМ записи в таблице ОБОРУДОВАНИЕ (что неприемлемо) ЛИБО б) 1. Две связанных сущности - МЕСТО(PK:PlaceID, PlaceName) и ОБОРУДОВАНИЕ(PK:HwID, HwName, FK:PlaceID) 2. Каждая запись в ОБОРУДОВАНИИ может быть привязана(NOT NULL) или не может быть привязана(NULL) к сущности МЕСТО, по вторичному ключу PlaceID(ALLOW NULL) 3. При удалении записи в таблице МЕСТО, необходимо сначала обнулить все связи (PlaceID) с этим МЕСТОМ в таблице ОБОРУДОВАНИЕ Плюсы: все связанные записи не удаляются (что необходимо) Минусы: сложность написания кода обработчика в контроллере для обнуления всех связанных позиций, нарушение соглашения EntityFramework, недостаток знаний по написанию такого кода Вопрос: Как решить данную проблему, какой вариант лучше использовать, что можно сделать? Может быть нужно переделать модель и использовать промежуточную таблицу между ними? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 10:19 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
akkolo-kakkoloкакой вариант лучше использоватьВы же сами сказали, что вариант "а" неприемлем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 10:21 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
можеть быть есть 3-й вариант, я прошу совета ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 10:23 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
может on delete set null ? http://technet.microsoft.com/en-us/library/ms186712.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 10:23 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Спасибо, я попробую использовать это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 10:33 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
akkolo-kakkolo, кому они нужны, бесхозные записи оборудования сделайте поле в таблице место - is_deletes признак что запись удалена второе поле - date_out -время удаления записи третье по настроению userid_delete - кто удалял запись. так хоть у Вас целостность сохранится и история .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 10:34 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Где-то в степиakkolo-kakkolo, кому они нужны, бесхозные записи оборудования сделайте поле в таблице место - is_deletes признак что запись удалена второе поле - date_out -время удаления записи третье по настроению userid_delete - кто удалял запись. так хоть у Вас целостность сохранится и история .. Т.е. вы хотите сказать, что необходимо создать только видимость удаления записи для пользователя, а в таблице МЕСТО данные на самом деле будут оставаться на месте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 11:33 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
да, во многих ИС это нормальная практика вообще рекомендую такие вопросы задавать в http://www.sql.ru/forum/db-design ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 11:38 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Хорошо, спасибо всем огромное! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 11:40 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
akkolo-kakkolo, как хотите, так и назовите, я бы мог предложить еще 2-3 варианта, но этот имхо лучше, вас первый не устраивает, на второй что вы предлагаете встречный вопрос, а в чем профит тогда у вас в применении ограничения, в том что ef авто сгенерирует поле оборудование, так вы и так можете убрать ограничение и генерировать в ручную ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 11:45 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Где-то в степиakkolo-kakkolo, кому они нужны, бесхозные записи оборудования+1, оборудование это материальный объект, он не может быть "нигде". В крайних случаях оно "в чулане", "на помойке", "списано". "Списано" вполне можно сделать виртуальным местом. Всего лишь еще одна запись в таблице мест вместо нагромождения промежуточных сущностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 12:00 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
А если, все же, мне когда-нибудь через лет 10-20 понадобится удалить пару десятков тысяч "удаленных" записей в таблице МЕСТО для экономии места на сервере, то в таком случае удалятся все связанные записи в таблице ОБОРУДОВАНИЕ, а записи об этом оборудовании мне еще понадобятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 13:03 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Где-то в степиakkolo-kakkolo, как хотите, так и назовите, я бы мог предложить еще 2-3 варианта, но этот имхо лучше, вас первый не устраивает, на второй что вы предлагаете встречный вопрос, а в чем профит тогда у вас в применении ограничения, в том что ef авто сгенерирует поле оборудование, так вы и так можете убрать ограничение и генерировать в ручную ? Сейчас меня первый вариант устраивает с применением IsDeleted. Второй вариант меня смущает чисто по вопросу соглашений EF, что правильно программровать ТАК, а не СЯК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 13:10 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
akkolo-kakkolo, а что вас смущает, что предложил Antonariy, это вполне законная практика, и многие ей пользуются, она прекрасно ложится под ef ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 13:57 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
akkolo-kakkolo, автормне когда-нибудь через лет 10-20 понадобится удалить пару десятков тысяч "удаленных" записей в таблице МЕСТО для экономии места на сервере не смешите меня, пру десятков миллионов, я бы еще задумался, ну и конечно предложил еще финт, а пару десятков тысяч = это просто пыль для хранилища ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 14:00 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
akkolo-kakkoloА если, все же, мне когда-нибудь через лет 10-20 понадобится удалить пару десятков тысяч "удаленных" записей в таблице МЕСТО для экономии места на сервере, то в таком случае удалятся все связанные записи в таблице ОБОРУДОВАНИЕ, а записи об этом оборудовании мне еще понадобятся.Если это вы мне, то не вижу связи с моим предложением. При удалении места оборудование переезжает на место "списано", а запись отправляется сразу фтопку без всяких isDeleted. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 15:26 |
|
||
|
Зашел в тупик - две сущности, FK и каскадное удаление
|
|||
|---|---|---|---|
|
#18+
akkolo-kakkoloА если, все же, мне когда-нибудь через лет 10-20 понадобится удалить пару десятков тысяч "удаленных" записей в таблице МЕСТО для экономии места на сервере, то в таком случае удалятся все связанные записи в таблице ОБОРУДОВАНИЕ, а записи об этом оборудовании мне еще понадобятся. А вот это означает, что оборудование не должно зависеть от места. А для связки оборудования с местом - отдельная таблица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 16:46 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38415399&tid=1358073]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 387ms |

| 0 / 0 |
