Организация таблицы с перекрестными ссылками, как?
-
- Сообщения: 66
- Зарегистрирован: 29 авг 2006, 10:00
Организация таблицы с перекрестными ссылками, как?
День добрый!
Возникла такая ситуация, когда мне надо книгу от нести по 2 или более тематикам, к примеру книга "Внутреннее устройство Windows" от М.Руссиновича может быть отнесена к тематикам: "Разработка драйверов", "Операционные системы", "Администрирования" и еще бог весть куда, куда пользователь захотел.
Но поиск по ключевому слову "перекрестные" не на форуме, не на сайте ничего не выдал, а поиск в ya.ru такое выдал, что мне ребенку с неокрепшим мозгом такое читать вредно
Подскажите как можно организовать перекрестные ссылки или лучше, дайте ссыль на статью.
Удачи вам
Возникла такая ситуация, когда мне надо книгу от нести по 2 или более тематикам, к примеру книга "Внутреннее устройство Windows" от М.Руссиновича может быть отнесена к тематикам: "Разработка драйверов", "Операционные системы", "Администрирования" и еще бог весть куда, куда пользователь захотел.
Но поиск по ключевому слову "перекрестные" не на форуме, не на сайте ничего не выдал, а поиск в ya.ru такое выдал, что мне ребенку с неокрепшим мозгом такое читать вредно
Подскажите как можно организовать перекрестные ссылки или лучше, дайте ссыль на статью.
Удачи вам
Re: Организация таблицы с перекрестными ссылками, как?
Ну так и в чем проблема? Это обычная связь многие-к-многим. Делается через промежуточную таблицу.EvilsInterrupt писал(а):Возникла такая ситуация, когда мне надо книгу от нести по 2 или более тематикам, к примеру книга "Внутреннее устройство Windows" от М.Руссиновича может быть отнесена к тематикам: "Разработка драйверов", "Операционные системы", "Администрирования" и еще бог весть куда, куда пользователь захотел.
Books(ID: Integer); Tematiks(ID: Integer)
Таблица связей:
Код: Выделить всё
СвязьКнигСТематиками(
BookFK: Integer,
TematikFK: Integer,
...
)
PrimaryKey=(BookFK, TematikFK)
ForeignKey1=(BookFK на таблицу Books)
ForeignKey2=(TematikFK на таблицу Tematiks)
-
- Сообщения: 66
- Зарегистрирован: 29 авг 2006, 10:00
Получается не много-ко-много, а один-ко-много. Т.к. одна книга и много тематик.
вот у мну есть:
...
и:
Это дерево очень хочется оставить, так пользователю проще ориентироваться будет. Но также не обходимо связать книгу с различными видами тематик.
вот у мну есть:
Код: Выделить всё
CREATE TABLE EBook (
ID Integer NOT NULL,
Name Varchar(50) NOT NULL,
и:
Код: Выделить всё
CREATE TABLE Subject (
ID Integer NOT NULL,
Parrent_FK Integer NOT NULL,
Value_ Varchar(15) NOT NULL,
CONSTRAINT PK_Subject PRIMARY KEY (ID)
);
ALTER TABLE Subject ADD CONSTRAINT Subject_FK FOREIGN KEY (Parrent_FK) REFERENCES Subject(ID) ON UPDATE CASCADE ON DELETE CASCADE;
В любом случае, делай через промежуточную таблицу. Структуру привел выше постом.EvilsInterrupt писал(а):Получается не много-ко-много, а один-ко-много. Т.к. одна книга и много тематик.
Это дерево очень хочется оставить, так пользователю проще ориентироваться будет. Но также не обходимо связать книгу с различными видами тематик.
-
- Сообщения: 66
- Зарегистрирован: 29 авг 2006, 10:00
И каждой тематике соответствует множество книгEvilsInterrupt писал(а):Получается не много-ко-много, а один-ко-много. Т.к. одна книга и много тематик.
В чём проблемы ?EvilsInterrupt писал(а):Это дерево очень хочется оставить, так пользователю проще ориентироваться будет. Но также не обходимо связать книгу с различными видами тематик.
Связь M:N между книгами и тематиками никаким образом не касается внутреннее устройство тематик (дерево, куст, окоп и т.п.) - главное чтобы было на что ссылаться (PK)
-
- Сообщения: 66
- Зарегистрирован: 29 авг 2006, 10:00