Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как реализовать наследование  [new]
Yola
Member

Откуда: Ukrainia
Сообщений: 615
Есть такая ситуация. баскетбольная команда и её члены, а именно игроки, тренеры, менеджеры. Игроки, тренеры и менеджеры фактически производные классы от класса член команды.


Вопрос:
Как мне реализовать такую структуру? я придумал два варианта:

1. связать таблицу "команды" с таблицой "члены", в "члены" сделать поле указывающее тип члена и по этом полю программа уже будет смотреть в какой таблице искать доп. инфу о члене или она будет проверять все таблицы типа "игроки", "тренеры" и "менеджеры" и по совпадению праймари кей выбирать доп. инфу.

2. с таблицей "команда" связать таблицы видов членов и также эти таблицы связать с таблицей "члены".


У каждого из этих вариантов свои преимущества и недостатки, что скажут уважаемые знатоки. Спасибо...
10 янв 05, 17:11    [1233552]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать наследование  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
для каждой задачи надо рассматривать отдельно...
тут зависит от того, как часто вам нужна будет вам общая информация о членах из разных типов, одновременные выборки из разных типов... и т.д.

но по принципам РБД каждой типа отдельная таблица и вперед за орденами и она связывается с таблицей команда


для спящего время бодрствования равносильно сну
10 янв 05, 17:17    [1233573]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать наследование  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324
член команды - супер класс, остальные производные
одна таблица - на член команды, остальные таблицы связаны с первой 1:1 по первичному ключу.
т.е. для первой таблицы id - первичный ключ, в производных, id - и первичный и внешний к первой таблице.
Двумя словами , наследование организуется в виде связи 1 к 1.

Posted via ActualForum NNTP Server 1.1

11 янв 05, 10:17    [1234409]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить