Здравствуйте. Стоит такая задача. Допустим, есть таблица со столбцами id, sid, title sid - может принимать значения id, например, выражая тем самым привязанность (вложенность) по данному id. Например какой-либо список, возмём список географического местарасположения. Страны имеют sid=0, то есть не являются подкатегорией чего-либо, от них мы и отталкиваемся. Далее, пойдут регионы имеющие в качестве sid, id страны, потом сами населённые пункты, имеющие sid'ом id региона. Думаю, структуру объяснил понятно. Вопрос такой, можно ли в рамках одной таблицы в базе зафиксировать некую "ссылочную целостность" по строкам таблицы? Например удалив какой-либо регион, сразу удаляться и все записи насселенных пункты в нём? Или удалив страну - удаляться и регионы и населённые пункты этой страны? PS: прошу, не предлагать использовать несколько таблиц, отдельных для стран, регионов и т.п., задачу (если это вообще возможно) надо решить в рамках вышеприведённых условий. География лишь пример, а хочется решить это задачу наиболее абстрактно общим образом, когда даже при разработке проекта неизвестно сколько подкатегорий будет, может даже вообще это будет динамическое создания каких-либо категорий и подкатегорий (каталоги, интернет-магазины, рубрики в блогах, древовидное меню и т.д.)
транзакции есть. открыл транзакцию и ковыряешь бд. потом либо сохраняешь изменения, либо откатываешь. только надо выборки лочить в тех случаях, когда другие не должны изменить данные пока ты не сохранился.
Конечно не то, чего хотелось бы. Транзакции, как я понимаю, придётся встраивать в сам код, а тут хотелось бы решить задачу на самом этапе проектирования базы, как это делается в случае двух таблиц при помощи FOREIGN KEY.