When is it used? A row for each field

I’ve seen this in Wordpress:

wp_usermeta
umeta_id
user_id
meta_key
meta_value

I see that this setup would allow for a flexible way to add additional fields to users without modifying the table structure itself.

Is this an ideal way to setup a table for users that may differ in fields if they are a business or individual? Obviously there would be a basic table for the information all users share (like log in information).

A problem that I see is if I wanted to grab tons of users, it could get a little complicated. At best, I would be able to perform 2 queries, 1 for each table. And then using PHP, join the results together…

it does indeed

this scheme is called EAV (entity-attribute-value) and it is deceptively simple to put information into, but frustratingly, maddeningly complicated to get any meaningful information out of

the proper way to handle different user columns as between businesses and individuals is with a supertype/subtype structure

Thanks, that’s what I’ve wanted to know. I’ll search the forums to read about supertype/subtype structure and get it set up.