Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2010, 09:44   #1
p.andrey
Пользователь
 
Аватар для p.andrey
 
Регистрация: 10.01.2010
Сообщений: 11
По умолчанию Создать шахматку в базе MS SQL

Здравствуйте уважаемые!!!
Вобщем суть такова - пишу прогу администратору отеля! Нужно реализовать "шахматку" для наглядного представления зарегистрированных броней.

Просто получается что 365 дней в году - столько и столбцов чтоли надо на один год, а если не один год - так вообщще!

Может есть какие-то альтернативные варианты?

Используемую базу указал в названии темы!

___________________________________ _____
Помогите кто чем сможет......
p.andrey вне форума Ответить с цитированием
Старый 19.03.2010, 10:37   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от p.andrey Посмотреть сообщение
Просто получается что 365 дней в году - столько и столбцов чтоли надо на один год, а если не один год - так вообщще!
зачем?
есть сущность комната
к ней прикручены свойства: номер (праймари), этаж, вместимость и т.п.
а бронирование в отдельной таблице со связкой id_room, date_book (начало и конец действия брони)
главное, потом проверять на пересечение интервалов при сдаче того же номера
soleil@mmc вне форума Ответить с цитированием
Старый 19.03.2010, 18:12   #3
p.andrey
Пользователь
 
Аватар для p.andrey
 
Регистрация: 10.01.2010
Сообщений: 11
По умолчанию

Уважаемый Вы меня не поняли или я вас не понимаю!!!

Чтоб не путать друг друга вот скриник наглядный:


Вот такое мне нужно организовать или что то подобное! Для таблицы использую ЭХЛИБ компоненты.

ЗЫ: и пожалуйста разжуйте все по полочкам если не трудно - я не силен пока в MS SQL - а без этой базы не куда, потому что удаленный доступ нужен будет к клиенту!
p.andrey вне форума Ответить с цитированием
Старый 19.03.2010, 20:57   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от p.andrey Посмотреть сообщение
Уважаемый Вы меня не поняли или я вас не понимаю!!!
второе более вероятно
то что на картинке - это всего лишь один из вариантов графического отображения того что есть в базе
ну или дальше придумайте как запихать в базу колонок с днями на 100 лет вперед
soleil@mmc вне форума Ответить с цитированием
Старый 20.03.2010, 15:30   #5
p.andrey
Пользователь
 
Аватар для p.andrey
 
Регистрация: 10.01.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
ну или дальше придумайте как запихать в базу колонок с днями на 100 лет вперед
Ну в этом в принципе и вопрос - как это сделать! Я же говорю что не силен в MS SQL

Может на какуето полезную информацию подталкнете? Чтобы решить мою проблему? Или хотябы ход моих действий расскажите а дольше я сам как нить постараюсь)))

ПЛИЗ очень надо, но не как не могу решить поставленную задачу!!!
p.andrey вне форума Ответить с цитированием
Старый 20.03.2010, 22:31   #6
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Читаем "реляционные базы данных".

Один из вариантов структуры базы (вкратце, без наворотов).
В таблице 1 находится информация по номерам:
- ID - идентификатор строки таблицы,
- порядковый номер номера [хм, вот так номер ],
- его описание и
- что там еще надо.
В таблицу 2 заносятся операции по бронированию:
- ссылка на ID номера,
период бронирования:
- дата начала
- дата окончания.

Все. Остальная реализация лежит на плечах программера, который пишет, пишет и пишет. На чем там у вас? Дельфи, С++ билдер? Вытаскивая информацию из базы данные и размещая ее хоть в шахматном порядке, хоть в беспорядке, т.е. в любом порядке.
Цитата:
ПЛИЗ очень надо, но не как не могу решить поставленную задачу!!!
Как бы не было ОЧЕНЬ НАДО, все равно придется самому разбираться в этой задаче, очень много в ней всего и разного потребуется сделать. А MS SQL тоже придется изучать: "не силен" - это не аргумент. Ежели никак, то заказывайте разработку - здесь много добрых людей.
Скандербег вне форума Ответить с цитированием
Старый 21.03.2010, 07:52   #7
p.andrey
Пользователь
 
Аватар для p.andrey
 
Регистрация: 10.01.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Скандербег Посмотреть сообщение
Один из вариантов структуры базы (вкратце, без наворотов).
В таблице 1 находится информация по номерам:
- ID - идентификатор строки таблицы,
- порядковый номер номера [хм, вот так номер ],
- его описание и
- что там еще надо.
В таблицу 2 заносятся операции по бронированию:
- ссылка на ID номера,
период бронирования:
- дата начала
- дата окончания.
Спасибо! Это то я понимаю уважаемый! тут особых знаний не надо))
Весь вопрос в том как сделать вот эту "верхнюю шапку" хотябы там лет на 10, чтобы она потом идентифицировалась по датам! Т.е. допустим забронировали номер - он выделился цветом или ещё как!

Цитата:
Сообщение от Скандербег Посмотреть сообщение
Как бы не было ОЧЕНЬ НАДО, все равно придется самому разбираться в этой задаче, очень много в ней всего и разного потребуется сделать. А MS SQL тоже придется изучать: "не силен" - это не аргумент. Ежели никак, то заказывайте разработку - здесь много добрых людей.
Да нет вы не подумайте я не выпрашию готовый ответ или готовое решение мне бы просто в нужную сторону напривиться!
p.andrey вне форума Ответить с цитированием
Старый 21.03.2010, 08:24   #8
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

При такой структуре таблиц базы "шахматка" делается динамически. На какой угодно период (месяцы, годы - задается на клиенте). Через запросы (select) клиентское приложение получает информацию из таблицы 2 и само формирует таблицу в том виде, каком надо.
В любом случае, процесс формирования таблиц на клиенте зависит от конкретной реализации базы, хранящей информацию, и тех запросов к данным базы, которые будут необходимы. Их и надо придумывать.

Здесь решение задачи будет, скорее всего, заключаться в том, чтобы развернуть данные из таблицы2, которые находятся в ней линейно, "по горизонтали". Но вопросы по таким приемам на форумах появляются достаточно регулярно. Можно поискать ответы, например, на
http://www.sql.ru/forum/actualforum.aspx
Скандербег вне форума Ответить с цитированием
Старый 21.03.2010, 10:10   #9
p.andrey
Пользователь
 
Аватар для p.andrey
 
Регистрация: 10.01.2010
Сообщений: 11
По умолчанию

Нашел вот информацию по оператору PIVOT http://www.sql-tutorial.ru/ru/book_operator_pivot.html

Как вы думаете в моей ситуации возможно ли им воспользоваться?
p.andrey вне форума Ответить с цитированием
Старый 21.03.2010, 11:17   #10
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Настораживают слова:
Цитата:
В отличие от сводных таблиц, в операторе PIVOT требуется явно перечислить столбцы для вывода. Это серьезное ограничение, т.к. для этого нужно знать характер данных, а значит и применять в приложениях этот оператор мы сможем, как правило, только к справочникам (вернее, к данным, которые берутся из справочников).
Посмотрите в личку, еще один вариант даю.
Скандербег вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно создать запрос по поиску в базе Access? Dux SQL, базы данных 2 03.05.2009 13:37
Как создать базу на Sql Bayram_662 БД в Delphi 3 18.12.2008 14:46
Помогите создать SQL запрос Rain9 SQL, базы данных 5 25.11.2008 08:54
Доступ к базе SQL из Delphi Miranda БД в Delphi 3 26.03.2007 13:14
Создать таблицу Access в существующей базе. Nowichok БД в Delphi 6 10.02.2007 18:32