Форум программистов, компьютерный форум CyberForum.ru

Ортогональная таблица - C++

Войти
Регистрация
Восстановить пароль
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.02.2010, 11:02     Ортогональная таблица #1
Есть таблица БД с композитным возможным ключом из двух полей, двух композитных сущностей, или обычного поля и композитной сущности. Надо значениям одного из этих полей/композитов сопоставить столбцы экранной таблицы, а значение второго поля пусть соответствуют строкам и подписать строки/столбцы в заголовочных столбцах/строках соответствующими значениями полей (только обычных, если столбцам соответствуют значения композита, то все его поля вывести в равное число заголовочных строк). Вход - TADOTable/TADOQuery или их аналоги. Как сделать компонент, инкапсулирующий всё, что нужно для решения этой задачи?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
 Аватар для oxotnik
1585 / 1062 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
10.02.2010, 11:13     Ортогональная таблица #2
Думаю, что если заменить слова "композитный" на "составной" и "сущность" на более понятный синоним (более привязанный к конкретной теме), то шансов получить ответ прибавится.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.02.2010, 11:43  [ТС]     Ортогональная таблица #3
Коткин С.Д., преподавая студентам реляционные БД говорит, именно о композитных сущностях и ключах, а не составных. Но как синоним думаю можно юзить слово "составной". Тогда задача будет выглядеть так:
Есть таблица БД с составным возможным ключом из двух полей, двух составных атрибутов, или обычного поля и составного атрибута. Надо значениям одного из этих атрибутов сопоставить столбцы экранной таблицы, а значения второго поля пусть соответствуют строкам и подписать строки/столбцы в заголовочных столбцах/строках соответствующими значениями обычных полей. Если, например, столбцам, соответствуют значения составного атрибута, то значения всех его полей вывести в равное количество заголовочных строк: каждая заголовочная строка соотвествует одному полю составного атрибута. Вход - TADOTable/TADOQuery или их аналоги. Как сделать компонент, инкапсулирующий всё, что нужно для решения этой задачи?
Хотя, я не уверен, что термин "атрибут" из теории БД можно юзить в сочетании со словами "составной", "композитный".
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.02.2010, 11:52  [ТС]     Ортогональная таблица #4
Предположим, таблица БД имеет поля: день недели, номер пары, возможность планирования занятия на данное время. Первичный ключ состоит из полей: день недели, номер пары. Вывести надо в виде (рис. 1)

Друга таблица имеет поля: неделя, день недели, номер пары, возможность планирования на данное время. Показать так - (рис. 2)

В обоих случаях интерфейс OpenOffice.org Calc не нужен, надо только также оформить саму таблицу (даже без заголовочных строк и столбцов, свмого OpenOffice.org Calc). Плюс выделить в первом случае первые строку и столбец, а во втором - первый столбец и две первые строки, так чтоб они казались выпуклыми и имели другой цвет фона (Подобно FixedRows в TStringGrid). Надо также поддерживать транспонированный вариант второй таблицы (выделит первые два столбца и первую строку) и вариант, когда и заголовочных строк несколько, и заголовочных столбцов тоже. Всё должно быть инкапсулировано в классе.
Миниатюры
Ортогональная таблица   Ортогональная таблица  
oxotnik
 Аватар для oxotnik
1585 / 1062 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
10.02.2010, 12:16     Ортогональная таблица #5
Цитата Сообщение от taras atavin Посмотреть сообщение
Предположим, таблица БД имеет поля: день недели, номер пары, возможность планирования занятия на данное время. Первичный ключ состоит из полей: день недели, номер пары. Вывести надо в виде (рис. 1)
имеет смысл сделать 7 полей для дней недели (больше или меньше ну никак не будет, это статичные данные) + поле возможности а в них проставлять номера пар + конкретную дату.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.02.2010, 12:20  [ТС]     Ортогональная таблица #6
А если станет их 700? Я ведь могу и сто видов недели нафигачить. Так вот: сами таблицы БД надо делать быстро и единообразно и также быстро и единообразно их подключать к экранным. Долго можно делать только класс экранной таблицы, но использоваться он будет многократно.
oxotnik
 Аватар для oxotnik
1585 / 1062 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
10.02.2010, 12:23     Ортогональная таблица #7
Цитата Сообщение от taras atavin Посмотреть сообщение
А если станет их 700? Я ведь могу и сто видов недели нафигачить.
700 дней в неделе? дас ист фантастишь!!!
Нормализация БД
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.02.2010, 12:43  [ТС]     Ортогональная таблица #8
Цитата Сообщение от oxotnik Посмотреть сообщение
больше или меньше ну никак не будет, это статичные данные
Учебная неделя, чаще всего, пятидневная. И больше бывает: декада состоит больше, чем из семи, кажется, из десяти дней. И при чередовании недели данные могут меняться. На рис 2 в посте № 4 10 учебных дней. А если тем же макаром и субботой? Это уже 12 дней. Ещё вариант: на месте дней недели числа месяца, а на месте вида недели месяцы. Получам 31 или 366 дней. С чётным/нечётным годом 732 дня. А если за век? Вместо номеров пар могут быть страны, а сами данные, например, были ли в этот день и в этой стране землетрясения. По тому же принципу можно много чего навертеть и каждый раз мучаться с созданием кучи полей?

Добавлено через 2 минуты
А это я и так знаю. Но на экран надо вывести так, чтоб одно или несколько полей, идентифицировали столбец вместо строки.

Добавлено через 8 минут
Идея задачи: вывести таблицу на экран, интерпретируя составной возможный ключ как набор индексов плоского массива. Такие экранные таблицы реально существуют во многих программах автоматизированного составления расписания. В одной проге я даже сам делал такое отображение с возможностью редактирования. Сейчас же меня интересует класс для единообразной работы с такими таблицами, если данные хранятся в таблицах обычных реляционных БД.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2010, 14:07     Ортогональная таблица
Еще ссылки по теме:

Таблица ASCII C++
C++ Таблица умножения
Таблица умножения С++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
oxotnik
 Аватар для oxotnik
1585 / 1062 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
10.02.2010, 14:07     Ортогональная таблица #9
твоя задача тебе лучше видна, а конкретно по вопросу - наследуйся от TCustomGrid и делай вручную все прорисовки, ну и от циклов никуда не денешься.
Yandex
Объявления
10.02.2010, 14:07     Ортогональная таблица
Ответ Создать тему
Опции темы

Текущее время: 15:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru