[Top][All Lists]

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

Re: [Anarchdb-devel] Re: database layout questions?

From: Francois Gombault
Subject: Re: [Anarchdb-devel] Re: database layout questions?
Date: Tue, 14 Mar 2006 09:36:34 +0100
User-agent: Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929)

Meshee wrote:
Here is the result of my work:
a sql database schema of the core tables.

Thanks. It looks nice. :)

As i did build the DB schema it raises some questions, if you guys
could help me  answering theme it would be much appreciate:

* *cards_names* -- table i do not understand what this table stand
for. It looks like an attempt to have ALL cards in the same tables but
i do not see the point. As a result it just add a level of indirection
in the DB schema. The card_table field is the most mysterious.

First of all, the database contains references for ALL cards, which means different entries for Dodge(Jyhad) and Dodge(VTES). This is why there is a table containing all card names. To prenvent the DB's file size from growing too much by avoiding unnecessary string duplication.

The card_table field indicates if the name relates to a crypt or library card.

* *cards_XX_ignored* -- once again i do not see the purpose of thoses
tables... missmatching cards during DB update?

ARDB has the option of ignoring sets one didn't buy. So the user is only shown cards from the sets he owns. This is done by moving records from cards_XX to cards_XX_ignored.
The reverse operation is also possible in the GUI.

This feature is essential to build decks for VTES Online, should that ever happen.

* *cards_types* -- according to the <FK> this tables contains card
type (Action, Action Modifier etc) AND Vampire Clans O_O. Even if it
looks non problematic at first, merging concept in the same table if
prone to troubles on the long run. I wonder if something escape me?

Here again, the card_table field sets appart crypt and library types.

* *disciplines* -- this table looks to not be related to anything
else, what does it stand for?

It lists all disciplines. It is filled before everything else at CSV parsing. LSJ has that odd habit of adding new disciplines, and thus breaking the CSV parser.

Now the parser is a bit more clever and tries to figure out what are the disciplines and how many there are. The list is stored in this table, and is used A LOT by the GUI.

* *rarity_types* -- i just wonder how anarchdb handles multiple rarity
for a same card (Immortal Grapple)

Multiple entries in cards_library or cards_crypt. It's just that simple.

The hard part lies in the database updater, who makes sure card IDs for older cards remain consistent from update to update.

* *url* -- what does this fielsd use to contains? my guess is card url. If i guess right monger allow a search per
name so may be it can be remove.

Reserved for later use.
It was intended for Monger URL, yes. Now as you say it's unecessary for that purpose, since I managed to sweet-talk Ethan into adding name-based urls to Monger. ;)

Now I imagine it could be used to link to online scans of the cards, or maybe to errata and rulings. Whatever.

* *cards_crypt* -- i see many fields with similar purpose:
disciplines, inferior, superior, why do we has thoses fields AND one field per 

It makes display, search, Happy Families and stats caculus MUCH easier. Use the string fields for display, the integer fields for maths, for example.

Last question:
* library_selection/crypt_selection what do they stand for? no <PK>
<FK> i wonder if they are used at all

These tables hold the currently displayed cards in the crypts and library browser.
Default: all cards for library browser 0 and crypt browser 0.

Click on "Select"-> Lasombra, and the crypt_selection gets pruned accordingly.

Hope that helps.

Francois Gombault
I AM NOT A LEAN MEAN SPITTING MACHINE -- Bart Simpson on chalkboard

reply via email to

[Prev in Thread] Current Thread [Next in Thread]