database fields.
You're all making the mistake of assuming that the person's attributes are stored in a thing-per-field basis. An alternative is to wrap up all that stuff into a single serialized field called "attributes" or something. It's an approach taken by a well-known wordpress plugin, and yes, it makes it essentially impossible to do a sensible search for "products that weigh more than 2 kilos" or similar.