Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 04:54:20

Страниц: [1]
Печать
Автор Тема: Как быть со связями при удалении раздела из базы?  (Прочитано 138 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kolobok    ↓ 
13 Октябрь, 2011, 10:52:54
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 45
Сила слова: 0

В админке сейчас делаю стандартную возможность добавлять/редактировать/удалять раздел. Но вот хочу спросить, есть ли какое то обкатанное решение при удалении связанных разделов? Т.е. допустим есть таблица с автомобильными агрегатами (ну там ГРМ, тормоза, система охлаждения). Решил вдруг админ удалить пункт ГРМ, что тогда делать с запчастями которые входили в ГРМ? Сделать выборку и предложить админу раскидать их в другие системы? Как это правильно делается, или можно как то изначально было по другому все спроектировать?
Записан

Stasovsky    ↓ 
13 Октябрь, 2011, 10:54:43 , спустя 1 минуту 49 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3654
Сила слова: 1.48

триггеры?
Записан
Givi    ↓ 
13 Октябрь, 2011, 11:32:41 , спустя 37 минут 58 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

kolobok, все зависит от того, что с теми "остатками" нужно сделать администратору. К примеру, это может быть сплошное удаление без угрызений совести, может быть простое "скидывание" всех таких товаров в некую корзину, где они будут себе лежать до того времени, пока администратор не решит их куда-то переместить. По сути они станут не активными. Либо же "сбросятся" все в определенную активную категорию, к примеру "разное/прочее". В общем, вариантов масса, и реализация зависит от задач.
п.с. Вообще один из правильных вариантов на мой взгляд это либо полное удаление всего либо же запрет на удаление категории, пока в ней будет хоть один товар.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
adw0rd    ↓ 
13 Октябрь, 2011, 11:55:35 , спустя 22 минуты 54 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17631
Сила слова: 1.67

Вообще удалять плохо, надо скрывать, так как история теряется
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
kolobok    ↓ 
13 Октябрь, 2011, 01:54:28 , спустя 1 час 58 минут 53 секунды
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 45
Сила слова: 0

Просто есть заказ сделать довольно простой сайт для автозапчастей. Вот решил наконец узнать у тех кто с этим сталкивался, как обычно поступают в этом вопросе. Т.е по хорошему мне у заказчика надо было спросить делать ли пункт удаления или нет? Я решил сделать, так как вроде это очевидный пункт, вполне вероятно что им никогда и не воспользуются. Просто в голове пронеслись сразу аналоги, а если бы это были статьи в категориях, или фото в подрубриках каких то, и т.п., т.е то с чем по идее все уже сталкивались и выработано какое то универсальное правило при удалении рубрик/категорий и т.п.
Записан

Nyaah    ↓ 
13 Октябрь, 2011, 02:51:42 , спустя 57 минут 14 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 34
Сообщений: 522
Сила слова: 6.51

внешние ключи ON DELETE RESTRICT, чтобы точно ничего не удалилось, а при удалении не пустой категории просто говорить: "переместите всё что внутри куда-нибудь"
Записан

Work, buy, consume, die
Ivan    ↓ 
13 Октябрь, 2011, 05:11:34 , спустя 2 часа 19 минут 52 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

Делай тип таблиц InnoDB и ставь FOREIGN KEY (внешний ключ) в зависимую таблицу
Затем делай связь с ON DELETE CASCADE (что-то такое) - юзай phpmyadmin там удобная менюшка с чекбоксами и подсказками есть для этого)
Записан

Nyaah    ↓ 
13 Октябрь, 2011, 05:19:19 , спустя 7 минут 45 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 34
Сообщений: 522
Сила слова: 6.51

on delete cascade точно не стоит делать )))
два клика мышью минус пол сайта, было такое, девочка на вопрос "Вы точно хотите удалить раздел такой-то, в котором находится 12 подразделов и 90 статей?" ответила Да, удалить )
Записан

Work, buy, consume, die
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd