Search Postgresql Archives

Re: Saving score of 3 players into a table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Oct 25, 2011, at 15:32, Alexander Farber wrote:

> Hello,
> 
> I'm trying to save results of card game with 3 players into a table.
> 
> It is bad enough, that I had to introduce
> 3 columns for user ids: id0, id1, id2 and
> 3 columns for their scores: money0, money1, money2 -
> 
>        create table pref_results (
>                id0 varchar(32) references pref_users,
>                id1 varchar(32) references pref_users,
>                id2 varchar(32) references pref_users,
>                money0 integer not null,
>                money1 integer not null,
>                money2 integer not null,
>                rounds integer not null,
>                finished timestamp default current_timestamp
>        );
> 
> But now I've also realized, that I don't know,
> how to join that table with the pref_users,
> so that I get first_name for each of 3 players -
> 
>        $sth = $db->prepare("
>        select
>             id0,
>             id1,
>             id2,
>             money0,
>             money1,
>             money2,
>             rounds,
>             to_char(finished,'DD.MM.YYYY') as day
>        from pref_results
>        where finished > now() - interval '1 week'
>             and (id0=? or id1=? or id2=?)
>       ");
>        $sth->execute(array($id, $id, $id));
> 
>        while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
>               # XXX print the table with day, first_names and money
>        }
> 
> I'm probably doing something wrong here?

Likely. Are you only ever going to have three players per table? Seems unlikely.

Without knowing anything else about your application, I suspect you need more tables:
a games table
a games_players table with each row associating a single player with a game. A three-player game has three rows per game. A four-player game would have four.

Depending on your app, you might also have finished_games and game_player_results tables.

Michael Glaesemann
grzm seespotcode net


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux