In Drupal 6, I'm writing a custom module that generates several pages (as a Drupal newbie). Mainly public form pages for soliciting donations - users fill out their info (amount, frequency, etc.) and we bundle it and send the user to payment processor.
On the admin side, this module gathers several items so that the form can be generated. Dollar amounts, benefit levels for donors, summary info, etc. So the vast majority are small text fields, with just a few words or a few integers. Nothing from the user submission is stored in Drupal.
What I've been doing up to this point is storing each item with
variable_set and retrieving it on the public form pages with
variable_get. This works fine, but I'm starting to worry that I might be getting myself into a performance problem.
Currently I see that there are 36 rows in the
variable table that come from this module. I don't know if that's bad, but I'm also not finished. As there are ~four "pages" associated with this module and I've only done one of them, there could conceivably be ~100 rows.
This leaves a few questions in my mind.
- Am I at the point where I need to make a custom table for my module?
- Will these rows all be cached (I'm aware of
cache_setbut I'm not sure how that relates to
variable_setif it does)?
- If they are cached (either automatically or because I use
cache_setfor them) will that solve any potential issues?
- If I should use
cache_setwhat is the best method for caching a bunch of tiny things? Should I try to bundle them and cache them all at once after the admin form is submitted?
- The same for
cache_get- what is the best way to retrieve these kind of things?
I'm asking this because I'm seeing a lot of places where
variable_set is discouraged once there gets to be a lot of data, but I'm not sure if I'm at that point or not.