Re: Need some help in data design

From: Bernard Peek <Bernard_at_shrdlu.com>
Date: 2000/03/09
Message-ID: <NVInZOANVDy4EwYC_at_shrdlu.com>#1/1


In article <8a94nm$536$1_at_nnrp1.deja.com>, masnani_at_my-deja.com writes

>Here is the problem -
>
>The application needs to be able to accept input from users about items
>they want to be sold using an auction site. The main problem is to be
>able to acquire all possible attributes about these items since these
>attributes will be used for making decisions.

You want to be able to record every piece of information about every type of object. That's a non-trivial task.

>For eg. We would like to track, all attributes of a product like a
>watch (manufacturer,model, color etc.).A user can submit any kind of
>product including services such as consulting services as a product.
>So we have to come up with a data model to be able to store all the
>product information for all possible product types.
>I am somewhat familiar with ER modeling but not by any means an expert
>and need some advice as to where to start.

Run away screaming would be a good start.

Two approaches come to mind. The simplest is just to use a text field and allow the seller to type in whatever they feel is relevant. You could offer hints as to what purchasers are likely to think is relevant.

The second is to use a database that lists attributes and values, and allows the user to enter both. You need to know what objects have which attributes. The problem is that each unique item has a unique set of attributes, which have different values for each item. You may have null values.

For instance suppose someone wants to sell a dress. I know someone who has a dress that they might someday want to sell. I know it's colour, but I have no idea what material it's made of or what size it is. I don't think it has a manufacturers label. But it's still an auctionable item because it was worn by Carrie Fisher in the first Star Wars film.

The usual attributes for a dress are size, material and manufacturer/designer. This one has no meaningful value for any of those attributes, but it has attributes of "Worn By", "Used In Film" and probably several others that don't apply to one item of clothing in a million.

>There are 2 main problems (I am sure there are more) -
>1. To be able to model all the product types. One approach could be to
>create tables (entities) for the major product types such as
>vehicles,computer hardware, computer software, jewelery etc. and have
>levels of subtypes for each type of object within these.

If you started writing down all of the possible attributes and values for something as simple as a wristwatch you would die of old age before you finished. You could probably write down all of the common ones in a few minutes (where does the Bulova Accutron fit in?) but things that are valuable tend to have attributes that are uncommon. Any attempt to precompile  a list is doomed.

I signed up for an Internet shopping site yesterday. I gave the web-site my postcode (I'm in the UK) and it gave me a list of possible addresses that the designer had helpfully pre-compiled. Unfortunately none of those listed matched my actual address, and there wasn't a system for typing in the correct value.

The best you could hope for would be to compile a list of the commonest attributes for the commonest items. Make all of them optional. Allow free-form text for those attributes that you didn't think of. Don't prevent users from entering text values for attributes that you think can only to be numeric.

>
>2. The other issue is to be able to generate all the possible
>attributes for all the possible products i.e there might be many
>products out there, whose attributes I have no idea of. Are any of you
>aware of any services out there which sell this kind of information.

The Library Of Congress would be a good start.

-- 
Bernard Peek
bap_at_shrdlu.com
bap_at_shrdlu.co.uk
Received on Thu Mar 09 2000 - 00:00:00 CET

Original text of this message