Обсуждение MySQL -
^Woozie^ - 24.03.2010
В последнее время задумался о переходе на мюсли. Что-то мне не нравится с каждым днём иметь всё большее количество файлов в папке 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 сервера, если сервер не виден в инете?(жопой чую что нет)
Re: [OFF] Обсуждение MySQL -
BaRRyS3R - 24.03.2010
4. Дойдёт ли коннект до базы от моего sa-mp сервера, если сервер не виден в инете?(жопой чую что нет)
Дойдет)
Re: [OFF] Обсуждение MySQL -
ZiGGi - 24.03.2010
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 не подключиться извне...
Re: [OFF] Обсуждение MySQL -
[JIeXa] - 24.03.2010
SQlite рулит и .
MySQL не то!
там идёт ненужная передача(для самп сервера) инфы по инету, гораздо лучше для сервера будет доставать инфу из файла в том же месте где и сам сервер, поэтому однозначно sqlite лучше всего.
По поводу файлов и т.д.: в базах неудобно хранить инфу об машинах, обьектах и т.д.
поэтому для списков машин обьектов.. можно юзать и файлы
Re: [OFF] Обсуждение MySQL -
[Kira] - 24.03.2010
sqlite - жутко тормознутый зверь,хотя какой он зверь,черепаха.
а по поводу "там идёт ненужная передача(для самп сервера) инфы по инету" - только истинный псих поставит соединение с удалённой базой, нормальные люди юзают локалхост.
Re: [OFF] Обсуждение MySQL -
ZiGGi - 24.03.2010
Quote:
Originally Posted by [Kira
]
нормальные люди юзают локалхост.
|
согласен
Re: [OFF] Обсуждение MySQL -
^Woozie^ - 24.03.2010
Киньте примеров работы, кого не затруднит.
Re: [OFF] Обсуждение MySQL -
[JIeXa] - 24.03.2010
сделали бы лучше движок MySQL но без сокетов

и был бы один файлик в дирекотрии сервера, тогда можно и перейти на MySQL!
Re: [OFF] Обсуждение MySQL -
ZiGGi - 24.03.2010
Quote:
Originally Posted by ^Faus
Киньте примеров работы, кого не затруднит.
|
сис-ма регистрации:
http://zziggi.ru/downloads.php?cat_id=1&download_id=12
Re: [OFF] Обсуждение MySQL -
MX_Master - 24.03.2010
У меня на хосте, MySQL серв кушает ресурсов больше чем сам сэмп серв (: может кому инфа эта чет скажет
SQLite вполне нормальный в сэмпе механизм. Даже сейчас он в моем моде хорошо робит, правдо, с ошибками, но робит (:
Учите SQL, если хотите SQL серв.
Насчет кучи файлов аккаунтов игроков: создать в какой-ньть папке с аккаунтами нужные подпапки с имена a, b, c, .. _, [, ], и т.п. Складывать аки игроков в нужную папку в зависимости от первой буквы ника. И с фтп быстро найдете нужный акк и меньше файлов в каждой папке получится. Насчет бэкапа - в cron добавить задачку по упаковке и складыванию архивчиков в папку с бэкапами в нужное время дня/ночи/суток/недели на хосте. Еси нада, потом нужный архив взял себе домой перелил.
Re: [OFF] Обсуждение MySQL -
^Woozie^ - 24.03.2010
воть.. сделал базу в Access, заливаться в PHPmyadmin не хочет. Чем её конвертить, уже 3 конвертера заюзал - не фурычат.
Re: [OFF] Обсуждение MySQL -
Serafim_sd - 24.03.2010
Quote:
Originally Posted by ^Faus
воть.. сделал базу в Access, заливаться в PHPmyadmin не хочет. Чем её конвертить, уже 3 конвертера заюзал - не фурычат.
|
Зачем эти танцы? Создавай структуры БД непосредственно в пхпма.
Re: [OFF] Обсуждение MySQL -
^Woozie^ - 24.03.2010
просто так ничего не делается. Моя задача - обеспечить целостность схем связи.
Re: [OFF] Обсуждение MySQL -
Serafim_sd - 24.03.2010
юзай LEFT/RIGHT JOIN...
Re: [OFF] Обсуждение MySQL -
^Woozie^ - 25.03.2010
Сделал конверт базы, всё отлично. Сейчас буду заниматься с чтением-записью.
Ещё такая тема.. Хочу сделать гонки на SQL. Как грамотнее оптимизировать таблицы под них? А то иметь тыщу таблиц в базе данных - дурной тон.
добавлено:всё придумал.
Сделать отдельную таблицу races_
Там данные, имя гонки и всё такое. Но что делать с массивом координат, использовать для него поле MEMO? И как из этого поля проводить чтение?
ZiGGi, спасибо, очень помогло
Re: [OFF] Обсуждение MySQL -
^Woozie^ - 25.03.2010
Подскажите, правильно ли я делаю запросы?
Код:
//---------------------------------------------------------------------------------------------
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;
}
//---------------------------------------------------------------------------------------------
Re: [OFF] Обсуждение MySQL -
BaRRyS3R - 25.03.2010
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;
}
Re: [OFF] Обсуждение MySQL -
Romanius - 27.03.2010
Я уже много лет юзаю Денвер (
http://www.denwer.ru/) там как раз и есть MySQL и встроеный PHPMyAdmin которым очень легко создавать базы, просматривать из и еще много чего и не юзай геморойный MS Access
Re: [OFF] Обсуждение MySQL -
MX_Master - 27.03.2010
Заюзайте MySQL GUI Tools бесплатный от того же разраба (: phpmyadmin'ы меня чет напрягают
Re: [OFF] Обсуждение MySQL -
^Woozie^ - 27.03.2010
Quote:
и не юзай геморойный MS Access
|
если что то не умеешь юзать, не надо называться геморройным.