Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Логика хранения данных о стоимости в MySQL, Как хранить данные в БД по каждому дню
John.Deff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 23
Пользователь №: 19150
На форуме: 7 лет, 10 месяцев, 1 день
Карма:




Добрый день!

Пытаюсь спроектировать логику хранения данных в БД MySQL, прошу помощи.

Суть: гостиница - необходимо хранить стоимость номера за сутки + стоимость доп. услуг (их может быть много).
Получается, будут расписаны цены на каждый день, на год. Несколько цен на один день, цены на каждый день могут быть разными, это уже решает пользователь.

Вопрос: Как правильно реализовать структуру БД для этой задачи?
Может я не верно мыслю и стоит думать в другом направлении?
Может уже есть готовое решение?

Поиск ничего адекватного не выдал мне.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26444
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 11 дней
Карма: 739




стоимость номера за сутки - это отдельно

хранишь стоимость и дату - по итогу ты считаешь актуальную стоимость на последнюю дату

стоимость услуг по дням - точно так же - но это в отдельной таблице


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев, 6 дней
Карма: 176




Игорь_Vasinsky, по ТЗ:
- цены на каждый день могут быть разными

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

John.Deff, слишком мало информации для корректного ответа.


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1974
Пользователь №: 38654
На форуме: 3 года, 6 месяцев, 22 дня
Карма: 46




Структура данных судя по всему должна быть такая

apartments
---
id
name

prices
---
id
type
date_begin
date_end
price
currency

apartments_prices
---
price_id
apartment_id



Есть разные типы цен, на разные даты. Одну и туже цену можно вещать на разные апартаменты. У одного апартамента может быть много разных цен.


--------------------
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2382
Пользователь №: 26852
На форуме: 6 лет, 4 месяца, 10 дней
Карма: 129




Поддержу мыслю Игорь_Vasinsky, чистую стоимость номера/ов это одна таблица, в ней же можно и хранить "возможные" плюшки для номера (уборка, еда, мини-бар etc...).

Во второй таблице хранить стоимость этих услуг, потом при расчете суммировать данные соответственно.

Но интересно следующее... как
Цитата
необходимо хранить стоимость номера за сутки
и
Цитата
Несколько цен на один день, цены на каждый день могут быть разными, это уже решает пользователь.
может быть в реальности ?

Тут либо "постоянная" цена, либо "отрезки цен", например по времени, дням недели и т.д.

Мало информации как сказал Valick .
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15395
Пользователь №: 4190
На форуме: 9 лет, 5 месяцев, 20 дней
Карма: 470




John.Deff, я бы так сказал, что тебе нужна БД, умеющая работать с данными в формате JSON. Например, MongoDB (с ней не работал пока) или PostgreSQL.
Нет, можно и в Мускуле хранить JSON smile.gif Но обрабатывать на уровне БД не получится, будешь хранить как простую строку и потом в ПХП обрабатывать.

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


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SerginhoLD  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



че?
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 723
Пользователь №: 24500
На форуме: 6 лет, 9 месяцев, 3 дня
Карма: 55




Вроде в v5.7 с json можно работать, только нафига ему оно, про цены отдельно, можно даже не одна таблица с ценами, сверху вариант норм предложили

Можно базовую цену хранить в таблице с номерами.
Вторая таблица для других дней: id, a_id, две даты(от, до), цена

И услуги, тут уже в зависимости от тз, может они все одинаковые, дна таблица на все тогда, а может как с номерами разнести тоже на пару таблиц


--------------------
"internet explorer всех правильней отображает страницы" ©
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
John.Deff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 23
Пользователь №: 19150
На форуме: 7 лет, 10 месяцев, 1 день
Карма:




Ребята, спасибо всем за ответы!
Для себя нашел оптимальное решение благодаря мозговому штурму.
Так как сейчас в поездке, позже расскажу как реализовал.
Ещё раз благодарю !
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
John.Deff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 23
Пользователь №: 19150
На форуме: 7 лет, 10 месяцев, 1 день
Карма:




Я решил задачу таким способом.
Создал 3 таблицы:
- Objects
- Category
- Dateprice

Где Objects хранит в себе номера.
Таблица Category хранит в себе категорию, и привязанную к ней название услуги за которую в том или ином номере берем деньги. Другими словами, мы один раз создали для конкретной категории название услуги и дальше используем везде только её ID.
В таклице Dateprice мы храним
ID номера (таблица Objects)
ID услуги (таблица Category)
Значение даты и цены.

вот так все просто

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1974
Пользователь №: 38654
На форуме: 3 года, 6 месяцев, 22 дня
Карма: 46




John.Deff, лучше бы сделал как я написал. В твоём решении таблица Dateprice денормализована, у тебя будет очень много "относительно" одинаковых строчек при задании одной базовой цены для нескольких номеров. Решение будет, перенести связь между Objects и Dateprice в отдельную таблицу.


--------------------
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 392
Пользователь №: 40589
На форуме: 2 года, 7 месяцев, 22 дня
Карма: 22




date_end плохо использовать в базе почти всегда. должна быть дата начала цены и цена.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса