Сокращние полей в базе данных

3 posts in this topic

Skiffi
Активный

Здравствуйте пользователи сайта Pawno-Rus.ru


Сегодня мы поговорим о том как же уменьшить количество полей в базе данных.
Последнее время открыв базу сервера, зачастую можно увидеть такую картину:

(Пример)
EV9Xmi7.png

Как по мне, выглядит не очень.
Ну так вот, а можно иметь те же самые значения, но записанные куда компактнее.
Выглядит это так:
Qj8fCTI.png

Согласитесь, компактнее, да и выглядит уже лучше.
Ну, приступим к записи.

(Пример)
Создаем новое поле в базе данных, параметры указываем следующие:
QgSDv3i.png

Поле создано, далее запись переменных в моде и выгружение в них значений из базы:
В массиве PlayerData (Пример) создаете переменные:
enum PlayerData {
    pID, // ID игрока, не входит в урок
    pCheckKey, // Пароль игрока, не входит в урок
    phNumbers[8], // Необходимые нам переменные
}
new
    PlayerInfo[MAX_PLAYERS][PlayerData];

 

Переменные созданы, приступим к выгружению значений:


(Пример, с использованием sscanf)
    mysql_fetch_row_format(query, "|");
    sscanf(query, "p<|>is[33]a<i>[8]",
    PlayerInfo[playerid][pID],
    PlayerInfo[playerid][pCheckKey],
    PlayerInfo[playerid][phNumbers]);
    mysql_free_result();

 

Использование соответственно:

CMD:test(playerid, params[]) {
    new
        string[144];
    PlayerInfo[playerid][phNumbers][0] = random(899999)+100000;
    format(string,sizeof(string),"Теперь ячейка равна - %d",PlayerInfo[playerid][phNumbers][0]);
    return SendClientMessage(playerid,C_GRAY,string); // C_GRAY - цвет
}

 

Сохранение значений в базу:


(Пример с использованием format)

 

    new
        string[32],
        query[128];

    format(string,sizeof(string),"%d|%d|%d|%d|%d|%d|%d|%d",
    PlayerInfo[playerid][phNumbers][0],
    PlayerInfo[playerid][phNumbers][1],
    PlayerInfo[playerid][phNumbers][2],
    PlayerInfo[playerid][phNumbers][3],
    PlayerInfo[playerid][phNumbers][4],
    PlayerInfo[playerid][phNumbers][5],
    PlayerInfo[playerid][phNumbers][6],
    PlayerInfo[playerid][phNumbers][7]);
    format(query,sizeof(query),"UPDATE `users` SET `phNumbers` = '%s' WHERE BINARY Name = '%s'",string,PlayerInfo[playerid][Name]);
    mysql_query(query);

 

Автор: *Skiffi


[Примечание] Тема ни откуда не сворована, написана лично мною. Если такие темы уже есть, отпишите мне в лс на форум
[Примечание2] Если урок оказался полезен, поблагодарите автора, этого достаточно

Edited by Skiffi
Причина: Правки

Share this post


Link to post
Share on other sites
Skiffi
Активный

При копировании на другие источники, указание автора - Обязательно

Share this post


Link to post
Share on other sites
Бот
Великий Гуру

АВТОМАТИЧЕСКИ СФОРМИРОВАННОЕ СООБЩЕНИЕ:

Данная тема была перемещена модерацией или администрацией портала PAWNO-RUS.RU! 

Перемещена из: "Скриптинг PAWN > Готовые решения"

Перемещена в: "Скриптинг PAWN > Уроки"

 

С уважением, ваш Бот! 

Если вы НЕ согласны с переносом данной темы в раздел "Скриптинг PAWN > Уроки", пожалуйтесь на это сообщение в жалобе указав причины вашего недовольства. Спасибо. 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Lipsi
      By Lipsi
      Здравствуйте! 
       
      Я ищю людей мапперов скриптеров и так далее! 
       
       Плата будет но не сразу
       
      Связь со мной: 
      ВК - https://vk.ru/lipsi_den
      Тг- @Lipsi_den4ik
      Вконтакте обязательно должен быть у вас! 
       
       
    • grall758
      By grall758
      ищу добровольных ребят которые готовы принять свое участие в развитии масштабного крмп проекта, и заложить свою работу в наш проект. Обязательно предоставляется возможность карьерного роста и получения новых знаний. 
       
      ВСЕ КТО ЗА ИНТЕРЕСОВАН В РОСТЕ ПРОЕКТА ПИШИТЕ:
      телеграмм - @grall758
      дискорд - @grallchik758
       
      желательно когда пишите сразу уточняйте свою направленность.