Item with multiple options

This is a discussion on Item with multiple options within the PHP Language forums, part of the PHP Programming Forums category; Hi I have a real headache of a problem and was wondering if anyone can help me. I'm writing ...


Go Back   Usenet Forums > PHP Programming Forums > PHP Language

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 05-12-2008
nrsutton@gmail.com
 
Posts: n/a
Default Item with multiple options

Hi

I have a real headache of a problem and was wondering if anyone can
help me.

I'm writing a system that saves stock items. Each item can have none
or an infinite number of options attached to it.

For example you can have a cupboard door as one stock item or you can
have a Polo Neck sweater with the options of size:small, medium, large
and colour: red, green, blue.

My problem is that I have no idea how to store this information in the
database. My first thought was three tables STOCK_ITEMS,
STOCK_OPTIONS, OPTION_VALUES The item name would be stored in
STOCK_ITEMS with the option names in STOCK_OPTIONS and their values in
OPTION_VALUES. This works all very well until you want to store
something that doesn't have any options. Now I have one item in
STOCK_ITEMS with one id and another item that DOES have options with a
seperate id in OPTION_VALUES.

I feel like I'm going around in circles with this and it feels like
there should be such a simple solution but I'm just not seeing it.

Is there anyone out there that can give me a pointer and show me the
ligh?. Am I looking at the problem from completly the wrong angle?
What I want is a common way to identify a stock item (even if it does
or doesn't have an option)
Reply With Quote
  #2 (permalink)  
Old 05-12-2008
Captain Paralytic
 
Posts: n/a
Default Re: Item with multiple options

On 12 May, 15:05, nrsut...@gmail.com wrote:
> Hi
>
> I have a real headache of a problem and was wondering if anyone can
> help me.
>
> I'm writing a system that saves stock items. Each item can have none
> or an infinite number of options attached to it.
>
> For example you can have a cupboard door as one stock item or you can
> have a Polo Neck sweater with the options of size:small, medium, large
> and colour: red, green, blue.
>
> My problem is that I have no idea how to store this information in the
> database. My first thought was three tables STOCK_ITEMS,
> STOCK_OPTIONS, OPTION_VALUES The item name would be stored in
> STOCK_ITEMS with the option names in STOCK_OPTIONS and their values in
> OPTION_VALUES. This works all very well until you want to store
> something that doesn't have any options. Now I have one item in
> STOCK_ITEMS with one id and another item that DOES have options with a
> seperate id in OPTION_VALUES.
>
> I feel like I'm going around in circles with this and it feels like
> there should be such a simple solution but I'm just not seeing it.
>
> Is there anyone out there that can give me a pointer and show me the
> ligh?. Am I looking at the problem from completly the wrong angle?
> What I want is a common way to identify a stock item (even if it does
> or doesn't have an option)


This is a database question, not a php one.

If you are using mysql, I should go ask it on comp.databases.mysql.
Otherwise, at a push alt.php.sql
Reply With Quote
  #3 (permalink)  
Old 05-12-2008
The Natural Philosopher
 
Posts: n/a
Default Re: Item with multiple options

nrsutton@gmail.com wrote:
> Hi
>
> I have a real headache of a problem and was wondering if anyone can
> help me.
>
> I'm writing a system that saves stock items. Each item can have none
> or an infinite number of options attached to it.
>

Standard one-to-many database stuff.


> For example you can have a cupboard door as one stock item or you can
> have a Polo Neck sweater with the options of size:small, medium, large
> and colour: red, green, blue.
>


Ok..

> My problem is that I have no idea how to store this information in the
> database. My first thought was three tables STOCK_ITEMS,
> STOCK_OPTIONS, OPTION_VALUES The item name would be stored in
> STOCK_ITEMS with the option names in STOCK_OPTIONS and their values in
> OPTION_VALUES. This works all very well until you want to store
> something that doesn't have any options. Now I have one item in
> STOCK_ITEMS with one id and another item that DOES have options with a
> seperate id in OPTION_VALUES.
>
> I feel like I'm going around in circles with this and it feels like
> there should be such a simple solution but I'm just not seeing it.
>
> Is there anyone out there that can give me a pointer and show me the
> ligh?. Am I looking at the problem from completly the wrong angle?
> What I want is a common way to identify a stock item (even if it does
> or doesn't have an option)


Yes. Create a table of items, and another table of options, and have a
field in the options that carries the value of the stock item.

That works for infinitely variable options.

If the option set is limited, create a table of all possible ooptions,
and then a further table that links an option to the stock table.

i.e. if the option 'small' is unique ID 1, and T-shirt is unique ID 2,
make a link table with three fields..its unique ID, and a pointer
(containing 1) to the option 'small' and a pointer (containing 2) to the
T-shirt..

To bring up lists, use a join type (explicit or implicit) SQL statement.


I have just such a system used to cerate structure ddata aout a product:
I have a table of name/ value pairs that conytains a file that is used
top oredr the elements for display, and to link to teh priduct:

so my table of optional data looks like this:-

ID Name Value display_order stock_id
678 width 22mm 0 337

where 337 is the part number needing this extra info.

doing "select name,value from options where stock_id='337' order by
display_order, name" will net me a list of optional stuff about this
part number.

If there are no extra options, you simply get a null length list.

Reply With Quote
Reply


Thread Tools
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

vB 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 10:47 AM.


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