Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Как лучше организовать такие таблицы?


Автор: Riddik 26.5.2008, 17:06
Доброго времени суток!

Есть таблица для определения рейтинга специальностей ВУЗа.
Структура (для пользователя) во вложении, посмотрите, пожалуйста.


Условие такое, что такая таблица должна быть для каждой специальности, а их десятки. База дудет в Microsoft SQL Server 2000, приложения на Delphi.

Так вот, именно таких таблиц должно быть столько же, сколько и специальностей. Как бы осуществить это?

Может внести дополнительный атрибут "код_специальности", чтобы после каждого значения был ещё столбик с именем специальности? Но как тогда сделать так, чтобы первые в первых двух слолбиках записи копировались, т.е. 34 записи, затем снова 34 таких же записей, начиная с номера 18? (первая строка должна начинаться с 18-ти) 

А может сделать сразу десятки таких таблиц, для каждой специальности и не заморачиваться?

Автор: Magnifico 26.5.2008, 19:06
Riddik ты хотя бы ознакомился с содержанием таблицы на катринке
Да это просто свалка  разноплановой информации (ни одна запись друг сдругом не связана даже по смыслу!)
а ты пишешь:
Есть таблица для определения рейтинга специальностей ВУЗа.

Автор: Riddik 26.5.2008, 21:27
Magnifico, так это и есть эта таблица! Вместо нулей будут стоять конкретные цифры. Каждая кафедра даёт от себя такую вот таблицу, только вместо нулей какие-то данные. 

А таблиуа так и называется - рейтинг специальностей. Что не так?

Добавлено через 10 минут и 9 секунд
Ещё раз объясню. Эта таблица, которая во вложении, предоставляется как ежегодный отчёт от каждой кафедры. Предоставляется в Excel. Но так как универ всё переводит в базу данных, то и такие таблицы теперь будут в SQL Servere через сетку заполняться всеми кафедрами. 
Вот и и возникла проблема. Мне готовить таких таблиц столько же, сколько специальностей или можно как-нибудь поумнее всё организовать, а потом лишь по запросам выводить пользователю только по конкретной специальности?

Таблицы не я предумал. 

Автор: Magnifico 26.5.2008, 22:56
мне пока так видится (таблица Отчеты это и есть твоя таблица которую ты дал)

user posted image


Автор: Riddik 26.5.2008, 23:55
думаю, всё красиво получилось.
Спасибо большое!!!

Добавлено через 13 минут и 43 секунды
в догонку ещё такое вопрос

Можно ведь потом выводить в DBGrid'е таблицу в форме, что во вложении, только со значениями соответствующими выбранной в combobox'e специальности?

Т.е. в комбобоксе пользователь выбирает кафедры, и значения меняются соответсвенно.
Это не проблема?

Автор: Magnifico 27.5.2008, 10:25
незабудь связку полей  КодКафедры КодОчтета   сделать unique 
чтобы небыло повтор зчачений
Код

alter table dbo.ЗначенияОтчетов
add constraint unique_КодКафедры_КодОчтета Unique(КодКафедры,КодОтчета)


Код

select t1.КодОтчета,t1.Название, t2.Значение
from dbo.Отчеты t1
join dbo.ЗначенияОтчетов t2
on t1.КодОтчета =t2.КодОтчета
where t2.КодКафедры = 1   
--или where t2.КодКафедры = @parameter  параметр для комбобокса

Автор: Riddik 27.5.2008, 12:58
Спасибо за помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)