Re: Storing indefinite arrays in database
| From: | Shawn McKenzie | Date: | Wed, 11 May 2011 18:13:08 +0000 |
| Subject: | Re: Storing indefinite arrays in database | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-312762@lists.php.net to get a copy of this message | ||
On 05/10/2011 03:16 PM, Benedikt Voigt wrote:
> Hi,
> I'am very new to PHP, so please any comment is welcome.
>
> I want to write a function in PHP, which takes X arguments and outputs a
> value.
> The functioning of this function should be stored in a db (mydb? or
> better alternatives?)
> The function would look up the result in the db based on the X arguments.
>
> But how can I store X arguments and the corresponding output value?
> If I limit the X arguments to a specific number like N=10, then I could
> create N=10 +1 columns in a table.
> But how should I do it if I don't want to limit myself to a fix number?
>
> Thanks for any comment!
> Ben
Two ways that come to mind:
1. If you don't need to search, join, etc. on any of the arguments in
the DB (*and never will need to*), then serialize the array and store it
in one column and the result in another.
2. Use two tables:
results
id result
1 50
2 99
arguments
id results_id argument
1 1 800
2 1 999
3 1 3.14
Then you just join results.id on arguments.results_id in your query.
If you actually need to store the argument name then just add another
column called variable and change the argument column's name to value.
id results_id variable value
--
Thanks!
-Shawn
http://www.spidean.com