Обсуждение MySQL
#1

В последнее время задумался о переходе на мюсли. Что-то мне не нравится с каждым днём иметь всё большее количество файлов в папке scriptfiles?

Почему хочется перейти?
1. Во первых компактность. Нужно переносить одну базу вместо тучи файлов.
2. Во вторых, уменьшение папки scriptfiles.
3. Не знаю, файлы уже остались в прошлом веке.
4. Удобство:
Покопался я в программе MC Access, нашёл кстати очень даже удобную функцию связи таблиц. Это например если игроки A,B,C состоят в клан GGG и ты удаляешь этот клан из базы, то можно удалять только клан, а связь таблиц обеспечит удаление из статы игроков A,B,C.

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

1. Стойкость коннекта. Что с ней делать? Если например сигнал не доходит до базы? Это уже пробелы в системе мода. Меня это не устраивает.
2. MC Access сохраняет файл с форматом .db. Этот файл заливать сразу в мюсли или надо настраивать совместимости и прочий бред?
3. Преимущества/недостатки между стандартным SQLite и MySQL плагином от G-sTyLeZZ? А то как то чем меньше плагинов тем приятнее , не знаю почему.
4. Дойдёт ли коннект до базы от моего sa-mp сервера, если сервер не виден в инете?(жопой чую что нет)
Reply
#2

4. Дойдёт ли коннект до базы от моего sa-mp сервера, если сервер не виден в инете?(жопой чую что нет)

Дойдет)
Reply
#3

Quote:
Originally Posted by ^Faus
1. Стойкость коннекта. Что с ней делать? Если например сигнал не доходит до базы? Это уже пробелы в системе мода. Меня это не устраивает.
у всех стоит нормально сигнал должен дойти
Quote:
Originally Posted by ^Faus
2. MC Access сохраняет файл с форматом .db. Этот файл заливать сразу в мюсли или надо настраивать совместимости и прочий бред?
MC Access - о_О не юзай это гумно, юзай phpmyadmin и notepad++
Quote:
Originally Posted by ^Faus
3. Преимущества/недостатки между стандартным SQLite и MySQL плагином от G-sTyLeZZ? А то как то чем меньше плагинов тем приятнее , не знаю почему.
в SQLite не подключиться извне...
Reply
#4

SQlite рулит и .
MySQL не то!
там идёт ненужная передача(для самп сервера) инфы по инету, гораздо лучше для сервера будет доставать инфу из файла в том же месте где и сам сервер, поэтому однозначно sqlite лучше всего.
По поводу файлов и т.д.: в базах неудобно хранить инфу об машинах, обьектах и т.д.
поэтому для списков машин обьектов.. можно юзать и файлы
Reply
#5

sqlite - жутко тормознутый зверь,хотя какой он зверь,черепаха.
а по поводу "там идёт ненужная передача(для самп сервера) инфы по инету" - только истинный псих поставит соединение с удалённой базой, нормальные люди юзают локалхост.
Reply
#6

Quote:
Originally Posted by [Kira
]
нормальные люди юзают локалхост.
согласен
Reply
#7

Киньте примеров работы, кого не затруднит.
Reply
#8

сделали бы лучше движок MySQL но без сокетов
и был бы один файлик в дирекотрии сервера, тогда можно и перейти на MySQL!
Reply
#9

Quote:
Originally Posted by ^Faus
Киньте примеров работы, кого не затруднит.
сис-ма регистрации: http://zziggi.ru/downloads.php?cat_id=1&download_id=12
Reply
#10

У меня на хосте, MySQL серв кушает ресурсов больше чем сам сэмп серв (: может кому инфа эта чет скажет

SQLite вполне нормальный в сэмпе механизм. Даже сейчас он в моем моде хорошо робит, правдо, с ошибками, но робит (:

Учите SQL, если хотите SQL серв.

Насчет кучи файлов аккаунтов игроков: создать в какой-ньть папке с аккаунтами нужные подпапки с имена a, b, c, .. _, [, ], и т.п. Складывать аки игроков в нужную папку в зависимости от первой буквы ника. И с фтп быстро найдете нужный акк и меньше файлов в каждой папке получится. Насчет бэкапа - в cron добавить задачку по упаковке и складыванию архивчиков в папку с бэкапами в нужное время дня/ночи/суток/недели на хосте. Еси нада, потом нужный архив взял себе домой перелил.
Reply
#11

воть.. сделал базу в Access, заливаться в PHPmyadmin не хочет. Чем её конвертить, уже 3 конвертера заюзал - не фурычат.
Reply
#12

Quote:
Originally Posted by ^Faus
воть.. сделал базу в Access, заливаться в PHPmyadmin не хочет. Чем её конвертить, уже 3 конвертера заюзал - не фурычат.
Зачем эти танцы? Создавай структуры БД непосредственно в пхпма.
Reply
#13

просто так ничего не делается. Моя задача - обеспечить целостность схем связи.
Reply
#14

юзай LEFT/RIGHT JOIN...
Reply
#15

Сделал конверт базы, всё отлично. Сейчас буду заниматься с чтением-записью.

Ещё такая тема.. Хочу сделать гонки на SQL. Как грамотнее оптимизировать таблицы под них? А то иметь тыщу таблиц в базе данных - дурной тон.

добавлено:всё придумал.

Сделать отдельную таблицу races_

Там данные, имя гонки и всё такое. Но что делать с массивом координат, использовать для него поле MEMO? И как из этого поля проводить чтение?


ZiGGi, спасибо, очень помогло
Reply
#16

Подскажите, правильно ли я делаю запросы?

Код:
//---------------------------------------------------------------------------------------------

stock gs_IsUserRegistered(nick[])
{
new query[256],result[256],rr;
if(mysql_connect(MySQL_HOST,MySQL_USER,MySQL_DATABASE,MySQL_PASS))
{
format(query,sizeof(query), "SELECT * FROM \"Users\" WHERE `Username` = '%s'",nick);
mysql_query(query);
mysql_store_result();
if(!mysql_fetch_row(result)) { rr = 0; }else { rr = 1; }
}else{
printf("Function gs_IsUserRegistered(%s) can't be called. Reason: Connection Problem",nick);
rr = 2;
}
return rr;
}

//---------------------------------------------------------------------------------------------

stock gs_RegisterNewUser(nick[],password[])
{
new query[256],rr;
if(mysql_connect(MySQL_HOST,MySQL_USER,MySQL_DATABASE,MySQL_PASS))
{
format(query,sizeof(query), "INSERT INTO \"Users\" (Username, Password) VALUES ('%s', '%s')", nick,password);
mysql_query(query);
rr = 1;
}else{
printf("Function RegisterNewUser(%s,%s) can't be called. Reason: Connection Problem",nick,password);
rr = 2;
}
return rr;
}

//---------------------------------------------------------------------------------------------

stock gs_CheckNickNamePassword(nick[],password[])
{
new query[256],result[256],rr;
if(mysql_connect(MySQL_HOST,MySQL_USER,MySQL_DATABASE,MySQL_PASS))
{
format(query,sizeof(query), "SELECT * FROM \"Users\" WHERE `Username` = '%s' AND `Password` = '%s'",nick,password);
mysql_query(query);
mysql_store_result();
if(mysql_fetch_row(result)) { rr = 1; } else { rr = 0; }
}else{
printf("Function gs_CheckNickNamePassword(%s,%s) can't be called. Reason: Connection Problem",nick,password);
rr = 2;
}
return rr;
}

//---------------------------------------------------------------------------------------------
Reply
#17

Quote:
Originally Posted by ^Faus
Подскажите, правильно ли я делаю запросы?

Код:
//---------------------------------------------------------------------------------------------

stock gs_IsUserRegistered(nick[])
{
new query[256],result[256],rr;
if(mysql_connect(MySQL_HOST,MySQL_USER,MySQL_DATABASE,MySQL_PASS))
{
format(query,sizeof(query), "SELECT * FROM \"Users\" WHERE `Username` = '%s'",nick);
mysql_query(query);
mysql_store_result();
if(!mysql_fetch_row(result)) { rr = 0; }else { rr = 1; }
}else{
printf("Function gs_IsUserRegistered(%s) can't be called. Reason: Connection Problem",nick);
rr = 2;
}
return rr;
}

//---------------------------------------------------------------------------------------------

stock gs_RegisterNewUser(nick[],password[])
{
new query[256],rr;
if(mysql_connect(MySQL_HOST,MySQL_USER,MySQL_DATABASE,MySQL_PASS))
{
format(query,sizeof(query), "INSERT INTO \"Users\" (Username, Password) VALUES ('%s', '%s')", nick,password);
mysql_query(query);
rr = 1;
}else{
printf("Function RegisterNewUser(%s,%s) can't be called. Reason: Connection Problem",nick,password);
rr = 2;
}
return rr;
}

//---------------------------------------------------------------------------------------------

stock gs_CheckNickNamePassword(nick[],password[])
{
new query[256],result[256],rr;
if(mysql_connect(MySQL_HOST,MySQL_USER,MySQL_DATABASE,MySQL_PASS))
{
format(query,sizeof(query), "SELECT * FROM \"Users\" WHERE `Username` = '%s' AND `Password` = '%s'",nick,password);
mysql_query(query);
mysql_store_result();
if(mysql_fetch_row(result)) { rr = 1; } else { rr = 0; }
}else{
printf("Function gs_CheckNickNamePassword(%s,%s) can't be called. Reason: Connection Problem",nick,password);
rr = 2;
}
return rr;
}

//---------------------------------------------------------------------------------------------
Да, только что бы плагин адекватно работал, после mysql_store_result(); ставь mysql_free_result();

Ну на пример:

Код:
stock gs_CheckNickNamePassword(nick[],password[])
{
new query[256],result[256],rr;
if(mysql_connect(MySQL_HOST,MySQL_USER,MySQL_DATABASE,MySQL_PASS))
{
format(query,sizeof(query), "SELECT * FROM \"Users\" WHERE `Username` = '%s' AND `Password` = '%s'",nick,password);
mysql_query(query);
mysql_store_result();
if(mysql_fetch_row(result)) rr = 1; 
else rr = 0; 
mysql_free_result();
}else{
printf("Function gs_CheckNickNamePassword(%s,%s) can't be called. Reason: Connection Problem",nick,password);
rr = 2;
}
return rr;
}
Reply
#18

Я уже много лет юзаю Денвер (http://www.denwer.ru/) там как раз и есть MySQL и встроеный PHPMyAdmin которым очень легко создавать базы, просматривать из и еще много чего и не юзай геморойный MS Access
Reply
#19

Заюзайте MySQL GUI Tools бесплатный от того же разраба (: phpmyadmin'ы меня чет напрягают
Reply
#20

Quote:

и не юзай геморойный MS Access

если что то не умеешь юзать, не надо называться геморройным.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)