powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите с организацией таблиц
10 сообщений из 10, страница 1 из 1
Помогите с организацией таблиц
    #35818708
Дмитрий007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю диплом, стоит такая задача: Есть таблица сотрудников, каждый сотрудник может иметь от 1 до 4 ученых званий (звания берутся из подчиненной таблицы, их количество может измениться). Как более рационально организовать таблицы?
Сделал 4 поля (под ученые звания), вроде-бы все устраивало, но что-то свербило в душе, теперь вылез первый подводный камень - не могу сделать запрос чтобы идентификаторы званий заменялись на данные из подчиненной таблицы.
Еще есть идентичная задача: В научных трудах может быть до 6 соавторов...
Извините если не в ту ветку написал, все делаю на yaffil, поэтому и написал здесь.
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35818759
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий007Как более рационально организовать таблицы?
Как вариант

СотрудникиКодДругие данные
Ученые званияКодЗвание
Присвоеные званияКод сотрудникаКод званияДата присвоенияДругие данные
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35819803
Дмитрий007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
Мдя... как же я сам не допер... Буду делать. Если не прокатит с работами то еще раз задам вопрос
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35828204
Дмитрий007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос номер 2:

Есть таблица сотрудников. Есть несколько таблиц научных работ (монографии, дисертации, патенты и т.п.) всё затолкать в одну таблицу не получается, т.к. описательные атрибуты очень разные. В каждой работе может быть до 6 соавторов. Пробую сделать через промежуточную таблицу AUTHORS как и в предыдущем примере, но низнаю как привязать таблицы научных работ.
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35828538
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий007Вопрос номер 2:

Есть таблица сотрудников. Есть несколько таблиц научных работ (монографии, дисертации, патенты и т.п.) всё затолкать в одну таблицу не получается, т.к. описательные атрибуты очень разные. В каждой работе может быть до 6 соавторов. Пробую сделать через промежуточную таблицу AUTHORS как и в предыдущем примере, но низнаю как привязать таблицы научных работ.Например, сделать таблицы-связки (стандартно для связи "многие-ко-многим") от авторов к каждому типу публикации.
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35828691
Дмитрий007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю потом сложновато будет выбирать все работы принадлежащие одному сотруднику...
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35828707
Дмитрий007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А возможно ли в промежуточной таблице сделать несколько внешних ключей на таблицы научных работ?
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35828751
Michael_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий007Думаю потом сложновато будет выбирать все работы принадлежащие одному сотруднику...

1.1 Нисколько. В запросе придется смотреть во всех таблицах публикаций.
1.2 Возможно, есть смысл поместить их все-таки в 1 таблицу? Ну не верю я, что публикации могут иметь сильно различающиеся атрибуты...

Дмитрий007 А возможно ли в промежуточной таблице сделать несколько внешних ключей на таблицы научных работ?

2. Обязательно. Но только 1 FK на таблицу работ и 1 - на таблицу авторов. Только кол-во промежуточных таблиц = кол-ву типов публикаций = кол-ву таблиц публикаций.
Не слишком сложно получается? Может, все-таки п. 1.2?
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35828824
Дмитрий007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Michael_N
1.1 Нисколько. В запросе придется смотреть во всех таблицах публикаций.


Я это и имел ввиду - придется шерстить все промежуточные таблицы, составлять кучу однотипных запросов для этих таблиц.

Michael_N
1.2 Возможно, есть смысл поместить их все-таки в 1 таблицу? Ну не верю я, что публикации могут иметь сильно различающиеся атрибуты...


Если все обьединить в 1 таблицу, то получится полотенце с 20 или более полями, причем в различных видах работ, некоторые будут незаполненными.

Придумал другой способ, оцените пожалуйста его рациональность:
Промежуточная таблица Authors, которая хранит в себе соавторов, и по ключу публикации ссылается на другую промежуточную таблицу, в которой хранится оригинал работы и название таблицы (публикации), и на эту же таблицу по ключу публикации ссылаются все таблицы публикаций
...
Рейтинг: 0 / 0
Помогите с организацией таблиц
    #35828939
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий007Я это и имел ввиду - придется шерстить все промежуточные таблицы, составлять кучу однотипных запросов для этих таблиц.
Прийдется. Но UNION ALL, имхо, будет получше, чем пытаться "впихнуть в непихуемое" :) То, что проще в понимании - точно.
Кстати, можно использовать хранимые агрегаты и тогда для выборка всех публикаций автора будет представлять собой запрос к одной таблице.

Дмитрий007Придумал другой способ, оцените пожалуйста его рациональность:
Промежуточная таблица Authors, которая хранит в себе соавторов, и по ключу публикации ссылается на другую промежуточную таблицу, в которой хранится оригинал работы и название таблицы (публикации), и на эту же таблицу по ключу публикации ссылаются все таблицы публикацийВот чего не надо делать (опять же имхо) - это хранить названия отношений. Кроме того, ничто не мешает одновременно двум разным публикациям ссылаться на "промежуточную таблицу". Кстати, при обсуждении темы не мешало бы условные названия таблиц давать для взаимопонимания.

И вообще, чтобы оценить два подхода проделайте следующее.
1. Набросайте две структуры.
2. Составьте список наиболее типичных запросов.
3. Сравните запросы при использовании двух моделей
4. То, что сложнее - в корзину.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите с организацией таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]