Структура данных

alt5000
Дата: 03.03.2008 17:42:29
На общественных началах создаю базу данных для одной библиотеки и не знаю как

связать данные таким образом, чтобы система работала.

Сдклал 2 таблицы:

1. Книги
1.1. Наименование книги
1.2. Автор
1.3. Гриф (рекомендовано) - логическое
1.4. Вид книги (подстановка)
1.5. Тип книги (подстановка)
1.6. Количество экземпляров

2. Дисциплины
2.1. Специальность (факультет)
2.2. Предмет
2.3. Преподаватель
2.4. Количество учащихся (изучающих предмет)

Так вот, например, есть книга "История политических учений", ее есть 150 экземпляров.

Эта книга нужна при изучении философии - 3 студентам, при изучении Политологии - 12

студентам и при изучении, скажем, логики - еще 5 студентам (п. 2.4.).

Однако, из тех 3, кто изучают философию, 2 изучают ее по специальности А, а 1 - по

специальности Б.

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

Как мне связать их таким образом? Подскажите, пожалуйста. Заранее благодарен.
Polev
Дата: 03.03.2008 17:45:43
alt5000

Как мне связать их таким образом? Подскажите, пожалуйста. Заранее благодарен.


Создать таблицу с полями
КнигаID
СпециальностьID
alt5000
Дата: 03.03.2008 17:50:12
Polev
alt5000

Как мне связать их таким образом? Подскажите, пожалуйста. Заранее благодарен.


Создать таблицу с полями
КнигаID
СпециальностьID


Ессно, есть поля для связи (ID_Connect, число), но если просто связать книгу с множеством предметов из таблицы "Дисциплины", то каким образом связать эти дисциплины со специальностями. Если в дисциплины добавить поле "Специальность", то выйдет из этого что-либо... Но как? Схемку не нарисуете?
sdfgsdfgsdf
Дата: 03.03.2008 17:50:44
Удалить нафиг поле "Количество учащихся (изучающих предмет)"
(можно просто оставить как контрольно показательное !)

Создать еще одну таблицу соотношений

Код дисциплины
Тип дисцеплины
Код книги
Количество нуждающихся в книге при условии изучения данной дисцеплины !
alt5000
Дата: 03.03.2008 18:01:26
Там немного не так :^(. Нужно именно количество учащихся изучающих данный предмет, так как потом на основе этого показателя вычисляется обеспеченность литературой (количество книг/студенты, изучающие дисциплину).
sdfgsdfgsdf
Дата: 03.03.2008 18:04:56
Еще раз внимательно меня прочитай...
alt5000
Дата: 04.03.2008 09:24:31
Таблица соотношений... Я не знаком с этим. Слышал, чтотак опосредуются связи мнигие ко многим, но как пользоваться такими таблицами - не знаю. Не объясните?
mds_world
Дата: 04.03.2008 09:33:46
alt5000
Таблица соотношений... Я не знаком с этим. Слышал, чтотак опосредуются связи мнигие ко многим, но как пользоваться такими таблицами - не знаю. Не объясните?
Посмотрите учебную БД Борей, таблицы Заказы, Клиенты, Сотрудники. Или тройку Заказано, Заказы,Товары. Возможно, что найдете полезное для себя.
Программист-Любитель
Дата: 04.03.2008 09:53:17
Две таблицы - маловато. У вас специальности/дисциплины/предметы должны на несколько (больше) одной таблички развалиться.

Классификацию книг лучше сразу заложить в виде произвольного дерева, двух справочников маловато.

Авторов выделить в отдельную таблицу.

Рекомендовано - кому ? Может быть одним специальностям рекомендована, другим нет.

В общем, даже простейшая модель требует дюжину табличек.
sdfgsdfgsdf
Дата: 04.03.2008 10:51:19
Программист-Любитель
Две таблицы - маловато. У вас специальности/дисциплины/предметы должны на несколько (больше) одной таблички развалиться.

Классификацию книг лучше сразу заложить в виде произвольного дерева, двух справочников маловато.

Авторов выделить в отдельную таблицу.

Рекомендовано - кому ? Может быть одним специальностям рекомендована, другим нет.

В общем, даже простейшая модель требует дюжину табличек.


Это вы уже немного перегибаете палку... Здесь достаточно одной промежуточной таблицы.