Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 15
  1. #1
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±

    Система отелей (номера в отеле, вопрос)

    Здравствуйте, хотел спросить, как лучше организовать в системе отелей номера для игроков?

    Предположим (ПРОСТО ПРИМЕР), у меня есть 5 отелей, где:
    1 отель - 24 номера (2 этажа)
    2 отель - 24 номера (2 этажа)
    3 отель - 48 номеров (4 этажа)
    4 отель - 24 номера (2 этажа)
    5 отель - 96 номеров (8 этажей)

    Так вот, как лучше это все организовать, как то в аккаунт игрока, или лучше стоит вовсе создать отдельную таблицу в БД, где все это реализовать?

  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Может по структуре будет не очень, но:
    account.sql:
    id | name | password | hotel_id
    hotel.sql:
    id | owner | hotel_id |floor

    hotel_id нужно связать внешним ключом.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  3. #3
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Может по структуре будет не очень, но:
    account.sql:
    id | name | password | hotel_id
    hotel.sql:
    id | owner | hotel_id |floor

    hotel_id нужно связать внешним ключом.
    И каким образом мне это все хранить? Как минимум, мне нужно хранить "где-то" 3 значения:
    1. Номер отеля (hotel_id)
    2. Номер этажа (hotel_floor)
    3. Кол-во оплаченных дней (hotel_day)

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Вот тут обсуждали нечто схожее (эта и пара следующих страниц)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #5
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от StevenH Посмотреть сообщение
    И каким образом мне это все хранить? Как минимум, мне нужно хранить "где-то" 3 значения:
    1. Номер отеля (hotel_id)
    2. Номер этажа (hotel_floor)
    3. Кол-во оплаченных дней (hotel_day)
    Самое простое, это хранить список всех отелей в БД, номер этажа нет смысла записывать. Расположение входа в каждый номер будет по координатам из БД, ну и баланс счет номера записывай в этой же таблице. В таблице же игрока только порядковый ИД номера из базы и все. Остальное дело техники.

  6. #6
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вот тут обсуждали нечто схожее (эта и пара следующих страниц)
    Ого, из за этих ироглифов ничего не могу понять, а гугл переводчик даже не переводит..
    "À ïî÷åìó áû ïðîñòî íå ââåñòè ïîëå "ÀÄÐÅÑ", êîòîðîå áóäåò îáîçíà÷àòü êîíêðåòíóþ ìíîãîýòàæêó?" и подобное

  7. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от StevenH Посмотреть сообщение
    Ого, из за этих ироглифов ничего не могу понять, а гугл переводчик даже не переводит..
    "À ïî÷åìó áû ïðîñòî íå ââåñòè ïîëå "ÀÄÐÅÑ", êîòîðîå áóäåò îáîçíà÷àòü êîíêðåòíóþ ìíîãîýòàæêó?" и подобное
    В самый низ страницы промотай и там переключи язык сайта с английского на русский.
    В теме нет готового варианта, но там похожая ситуация: человеку нужна была система подъездов с несколькими этажами и прочим. И там рассматриваются несколько вариантов формирования таблицы. В общем, если чутка переработать их, получится ответ на твой вопрос
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. #8
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    В самый низ страницы промотай и там переключи язык сайта с английского на русский.
    В теме нет готового варианта, но там похожая ситуация: человеку нужна была система подъездов с несколькими этажами и прочим. И там рассматриваются несколько вариантов формирования таблицы. В общем, если чутка переработать их, получится ответ на твой вопрос
    Там столько разных мнений, что понял одно, что конечно лучше создать отдельную таблицу.

    Теперь вопрос состоит в другом, как в таблице например hotel_room организовать работу, на уме вот что:
    Создать таблицу hotel_room, где будут следующие поля:
    id | hotel_id | hotel_floor | hotel_room | ownerid | day

    id - AUTO_INCREMENT обычный
    hotel_id - id отеля, который берется с таблицы hotels
    hotel_floor - номер этажа в этом отеле (в каждом отеле их будет по разному)
    hotel_room - номер квартиры на этом этаже (от 1 до 12)
    ownerid - владелец (0 - нет, > 0 - ид аккаунта из accounts)
    day - на сколько оплачен его номер в отеле

    При создании одного отеля, в hotel_room добавлять нужное количество столбцов, если например в отеле 96 номеров, создать 96 столбцов.

    В 00:00 каждый день будет делаться запрос (будет одним запросом отниматься 1 день с поля day), и будет сразу же проверяться, если day = 0, тогда выселяем

    Или есть может какие другие предложения?
    Последний раз редактировалось StevenH; 25.06.2017 в 14:32.

  9. #9
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    А, и забыл добавить, в accounts.sql в поле hotel хранить ID с таблицы hotel_room поля id (тот самый AUTO_INCREMENT)

  10. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Я бы делал отдельную таблицу, которая хранит информацию о отеле, не связанную с игроками (позиция/количество номеров и т.п.), а так же таблицу, в которой уже будет связываться таблица аккаунтов и таблица отелей.

    То бишь, какая-то такая структура получится:
    PHP код:
    id account_id hotel_id room_id day 
    То есть, всё то же самое, что и у тебя, только не хранить номер этажа (ибо зачем?).

    И да, не нужно никаких запросов для "day" c отниманием. Есть же прекрасная штука: Unix Time. Вся чистка таблицы от старых записей заключается в
    PHP код:
    DELETE FROM hotel_room WHERE day NOW() 
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •