Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Целостность данных - проектирование БД (Nerian) 24/11/2004 - 23:57:55
      Re: Целостность данных - проектирование БД (Dinky) 25/11/2004 - 01:03:02
      Re: Целостность данных - проектирование БД (Nerian) 25/11/2004 - 11:24:17
      Re: "Foreign Key" спасет отца русской демократии? (Marat_L) 25/11/2004 - 13:38:29
      Re: А почитать? (Валентин) 25/11/2004 - 19:00:33

> Original message text:
> From: Nerian - 24/11/2004 - 23:57:55
> Subject:Целостность данных - проектирование БД
> -----------------
> Здравствуйте. Чтот я до сих пор не могу понять одну важную вещь в реляционых моделях БД. Допустим есть две таблицы:
> customs:
> id - autoincrement int not null primary key
> name - varchar(25)
> state - int
> states:
> id - autoincrement int not null primary key
> name - varchar(25)
>
> customs - хранит название заказа, и ссылку на состояние.
> Понятно чтобы получить какой заказ на каком состояние очень просто:
> select customs.name as cname,states.name as sname where customs.state = states.id;
> Но вот как быть если состояние было удалено?
> То тогда в нашем примере мы потеряем заказы в этом состояние.
> Как бы это обойти? Чтобы осталась возможность добовлять/удалять новыве состояния, и не было потери данных.
> И ещё вопрос: например как в форумах с регистрацией сделано что после того как пользователь удалил свой аккаунт, письма не удаляються, а остаються с его ником? вот мнеб чтот на подобии надо. Плиз всем помогите.
>


From: Валентин - 25/11/2004 - 19:00:33
Subject:А почитать?
-----------------
На этом сайте есть книга Грубера "Введение в SQL", советую почитать.
Вкратце ответ на твой вопрос:
Состояние - отдельный справочник состояний !
в табличке customs состояние - только ключ на табличку состояний.
Реализовывать в innodb и внешними ключами связать просто на restrict, чтобы нельзя было удалить тип, если на него есть ссылки.
Я ответил на твой вопрос?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
18671



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |