Szerző Téma: Mysql milyen táblaszerkezet legyen, az alábbi adatnak?  (Megtekintve 500 alkalommal)

Mysql milyen táblaszerkezet legyen, az alábbi adatnak?
« Dátum: 2013. augusztus 03. - 21:46:51 »
0 Show voters
Tegyük fel, hogy van 100 darab ajándékdoboz, minden játékos számára.
Most szeretném menteni mysql-be, hogy egy adott játékos felvette a 100 ajándékdobozt közül valamelyiket.
Most erre hozzak létre 100 mezõt minden egyes játékosnak? :hmmm:

Mysql milyen táblaszerkezet legyen, az alábbi adatnak?
« Válasz #1 Dátum: 2013. augusztus 03. - 23:11:23 »
+1 Show voters
Most arra gondoltam hogy 4 számmezõt hoznál létre játékosonként mysql-ben majd ezt az adatot tárolnád egy ilyen változóban:
 
new
ajandek[MAX_PLAYERS][4]; // 32, 64, 96, 128 bit, tehát 128 ajándékdoboz
ajandek[playerid][0] = cache_get_row_int(...
ajandek[playerid][1] = cache_get_row_int(...
ajandek[playerid][2] = cache_get_row_int(...
ajandek[playerid][3] = cache_get_row_int(...

 
Majd bitmûveletekkel állítanád be melyiket vette fel és kérdeznéd is le ellenõrzésként.
 
#include <a_samp>
new
ajandek[MAX_PLAYERS][4]; // 32, 64, 96, 128 bit, tehát 128 ajándékdoboz
stock
set_bitarray(array[], const value, size = sizeof(array))
{
if(1 <= value <= (size * cellbits))
{
new
   slot = value >>> 5,
   bit = value & 31;
array[slot] |= 1 << bit;
}
}
stock
get_bitarray(array[], const value, size = sizeof(array))
{
if(1 <= value <= (size * cellbits))
{
return (array[value >>> 5] & (1 << (value & 31))) || false;
}
return false;
}
 
public
OnFilterScriptInit()
{
for(new i = 0; i < 10; i++)
{
new
   rand = random(100) + 1;
printf(\"Randomként 10 darab felvett ajándék azonosítószáma: %d\", rand);
set_bitarray(ajandek[0], rand);  // Felvett ajándék beállítása
}
for(new i; i < 100; i++)
{
if(get_bitarray(ajandek[0], i)) printf(\"A 20 darab felvett ajándék azonosítószáma: %d\", i); // Lekérdezés melyiket vette fel
}
return 1;
}

Mysql milyen táblaszerkezet legyen, az alábbi adatnak?
« Válasz #2 Dátum: 2013. augusztus 03. - 23:15:42 »
0 Show voters
Bitmûveletes megoldásra nem is gondoltam, megpróbálkozom vele. :D
Ment a plussz zárok.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal