Bluehost.com Web Hosting $6.95

many (empty) fields or many entries?

This is a discussion on many (empty) fields or many entries? within the MySQL Database forums, part of the Database Forums category; case 1) a table with many fields for storing some data, usually most of them will be NULL because they ...


Go Back   Usenet Forums > Database Forums > MySQL Database

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 05-14-2007
Lo'oris
 
Posts: n/a
Default many (empty) fields or many entries?

case 1) a table with many fields for storing some data, usually most
of them will be NULL because they are (and will ever be) unsused

case 2) a table with just 3 fields, but many entries, one for each
field i'd have used (not null) in case 1.

which is better, in general?

do you maybe need more detailed infos?

Reply With Quote
  #2 (permalink)  
Old 05-14-2007
subtenante
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On 13 May 2007 18:14:42 -0700, Lo'oris <looris@gmail.com> wrote:

>case 1) a table with many fields for storing some data, usually most
>of them will be NULL because they are (and will ever be) unsused
>
>case 2) a table with just 3 fields, but many entries, one for each
>field i'd have used (not null) in case 1.
>
>which is better, in general?


I think both mean you have a design problem. What about splitting your
table in different ones ?

Sometimes, you need to do ugly things though. Case 1) seems to be more
normalized, but it depends on what your fields are.

>do you maybe need more detailed infos?


The more the better ! Give as much as is safe.
Reply With Quote
  #3 (permalink)  
Old 05-14-2007
strawberry
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On May 14, 8:41 am, subtenante <zzsubtenant...@gmail.com> wrote:
> On 13 May 2007 18:14:42 -0700, Lo'oris <loo...@gmail.com> wrote:
>
> >case 1) a table with many fields for storing some data, usually most
> >of them will be NULL because they are (and will ever be) unsused

>
> >case 2) a table with just 3 fields, but many entries, one for each
> >field i'd have used (not null) in case 1.

>
> >which is better, in general?

>
> I think both mean you have a design problem. What about splitting your
> table in different ones ?
>
> Sometimes, you need to do ugly things though. Case 1) seems to be more
> normalized, but it depends on what your fields are.
>
> >do you maybe need more detailed infos?

>
> The more the better ! Give as much as is safe.


case 2 sounds like an EAV approach - and, although used successfully
in some environments (see http://en.wikipedia.org/wiki/Entity-...te-Value_model),
it's usually frowned upon in this NG.

Reply With Quote
  #4 (permalink)  
Old 05-14-2007
Lo'oris
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On 14 Mag, 09:41, subtenante <zzsubtenant...@gmail.com> wrote:
> >do you maybe need more detailed infos?

>
> The more the better ! Give as much as is safe.


ok.

i already have first table. it contains an entry for each player
playing in a match (we're talking about a team game). it has some
fields (more or less 6), and all of them are used.

now i have to add stats (many. such as 15, i think, i didn't count
them yet) about what happened in the match. such as how many points a
player scored, etc.
If i add these fields into the table i already have, **most** of them
will be NULL because simply that player didn't do everything.
I am concerned about having so many unused fields, maybe they slow
everything down, or take too many space?

So, i either add those fields in that table, or (didn't thought about
that) i create a new table with the empty fields (so not affecting the
performance of the first table when i need only his fields), or i
create a new table with EAV approach (actually it would not have empty
fields, but it would be redundant anyway, listing many times the same
player ids and attribute name).

On 14 Mag, 11:16, strawberry <zac.ca...@gmail.com> wrote:
>
> case 2 sounds like an EAV approach - and, although used successfully
> in some environments (seehttp://en.wikipedia.org/wiki/Entity-Attribute-Value_model),
> it's usually frowned upon in this NG.


yes it's definitly EAV, i didn't knew the term but i knew the
concept :)

Reply With Quote
  #5 (permalink)  
Old 05-14-2007
subtenante
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On 14 May 2007 02:16:31 -0700, strawberry <zac.carey@gmail.com> wrote:

>case 2 sounds like an EAV approach - and, although used successfully
>in some environments (see http://en.wikipedia.org/wiki/Entity-...te-Value_model),
>it's usually frowned upon in this NG.


I had to use it for a part of a project, in the worst case : when the
attributes have almost all sorts of types (integer, floats, dates,
blobs, ...). For cases where you have only numerical attributes for
example, it can work smoothly. But as soon as you have to store
integers as strings, the operations and searches on the objects become
hell.
Reply With Quote
  #6 (permalink)  
Old 05-14-2007
subtenante
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On 14 May 2007 03:56:24 -0700, Lo'oris <looris@gmail.com> wrote:

>now i have to add stats (many. such as 15, i think, i didn't count
>them yet) about what happened in the match. such as how many points a
>player scored, etc.
>If i add these fields into the table i already have, **most** of them
>will be NULL because simply that player didn't do everything.
>I am concerned about having so many unused fields, maybe they slow
>everything down, or take too many space?


15 fields is not much. Even 30 fields is not that much, and according
to your description, i guess the input will be done "manually"
(somebody has to fill a form somewhere, there is no complete
automation). So the size of your database, I think, is not a big
concern.

EAV, as it is called (didn't know it me neither !), has the
disadvantage to make searches more difficult. If you want to check for
all the matches in which player Albert Einstein scored at least once,
it will be alright. But as soon as you want to have more difficult
operations, it might get tricky (and you will begin doing smart
things... and you'll soon discover than you're not as smart as you
thought in the first place).

I don't have much experience but if my voice counts, let the NULLs be,
they don't do much harm and you will have a far easier time when it
comes to look for the players that have scored between 1 and 3 times
while in position of defender and being entered in the game after the
45th minute of game and never got more than 5 penalties against them.

And if you're sure you never will have this kind of SELECTs, thing
twice ! :}
Reply With Quote
  #7 (permalink)  
Old 05-14-2007
subtenante
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On Mon, 14 May 2007 19:15:11 +0800, subtenante
<zzsubtenantezz@gmail.com> wrote:

>I don't have much experience but if my voice counts, let the NULLs be


Thinking twice myself, avoid the NULLs and put a default value instead
(0 in general, I guess). NULL imply you are in a three-valued logic
and the results of queries might not always be what they obviously
should be.
Reply With Quote
  #8 (permalink)  
Old 05-14-2007
Lo'oris
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On 14 Mag, 13:15, subtenante <zzsubtenant...@gmail.com> wrote:
> to your description, i guess the input will be done "manually" (somebody has to fill a form somewhere,
> there is no complete automation). So the size of your database, I think, is not a big concern.


actually no, it will be completely automated (my mistake, i didn't
specify i meant it was a WEB game ;)

but size is no issue anyway, as of now. this may be an issue later,
but i can't think of everything before having a finished product: size
and other optimizations may come later.

> EAV, as it is called (didn't know it me neither !), has the disadvantage to make searches more difficult.


ooh you're right.

On 15 Mag, 01:14, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> Search for "database normalization". It should give you some guidelines
> on what's the best for your case.


i will, thanks for the tip! (i searched "mysql optimization" before,
but found only crap things in the first two pages)

On 14 Mag, 13:46, subtenante <zzsubtenant...@gmail.com> wrote:
> Thinking twice myself, avoid the NULLs and put a default value instead
> (0 in general, I guess). NULL imply you are in a three-valued logic
> and the results of queries might not always be what they obviously
> should be.


hey nice idea. but. i kinda expected NULLs improved performance over
values such as 0, don't they?
well, having a slightly worst performance is anyway better than having
bugs you can't find, isn't it?
i'll consider this, thanks :)

Reply With Quote
  #9 (permalink)  
Old 05-14-2007
subtenante
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On 14 May 2007 04:58:47 -0700, Lo'oris <looris@gmail.com> wrote:

>hey nice idea. but. i kinda expected NULLs improved performance over
>values such as 0, don't they?
>well, having a slightly worst performance is anyway better than having
>bugs you can't find, isn't it?
>i'll consider this, thanks :)


I'm not sure it makes better performance to have NULLs. They add 1 bit
to every field that can take a NULL value, and they don't make
searches faster as far as I know.
Reply With Quote
  #10 (permalink)  
Old 05-14-2007
Lo'oris
 
Posts: n/a
Default Re: many (empty) fields or many entries?

On 14 Mag, 14:05, subtenante <zzsubtenant...@gmail.com> wrote:
> I'm not sure it makes better performance to have NULLs. They add 1 bit
> to every field that can take a NULL value, and they don't make
> searches faster as far as I know.


oh, stupid NULLs. i guess i shouldn't make assumptions.

in the and, i think I'll follow the non-EAV approach, with two tables.

two, because, even if they ideally should be only a single table, the
first one will be used MUCH more than the second one, so having them
separate should increase speed when accessing the first one, i guess.
I'm guessing again. well, this have to be correct.

Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT +1. The time now is 07:37 AM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0