We are developing a site at work for the xmas/new year period where individuals can buy/sell what they want its for charity basically, look at it as a smaller version of ebay.
We currently have 15 parent categories, and these parent categories have multiple sub categories which have many child categories.
We have designed the main item table which consists of Title, Description, CreatedBy, CreatedDate, Price etc
We are now moving on to the design of the item properties table for example let me explain about the vehicle category, the user can select a value for each of the following, Mileage, Make, Vehicle Type, No of Doors, Color, Fuel Type, Transmission.
We were planning on creating one main table which would consist of each property for each category so it would look something like this
PropertyId (BigInt) (PK)
ItemID (BigInt) (FK) < Links to the Main Item table
Mileage (int) (FK)
Make (int) (FK)
Type (int) (FK)
Doors (int) (FK)
Color (int) (FK)
Fuel (int) (FK)
Transmission (int) (FK)
Plus many more for each category
Each column will be of data type int and bigint, each FK will link to its respected table which will return the description that match the int value when queried, now I haven't gone any further I've taken a step back and thought this table is going to grow dramatically when we start working through all the other category properties, this table could potentially be well over 150 columns.
I will of course create the relationships between the tables which will help with performance but I'm unsure whether of not this is the right approach, when it comes to querying this table I will only be selecting the relevant fields i.e Vehicle category again I would only query the fields mentioned above.
But the thought of having a table with 150 + columns make my stomach turn (purely because I haven't worked with such size) maybe this is considered small to a DBA? I don't know but I thought I'll ask here and maybe get some reassurance and guidance in to what direction I should be going.
I did on the other hand find this
Which I have taken on bored what Rob Nicholson mentioned as well as Reed Copsey, but I wanted to get more of an input maybe from potential DBA's or maybe people that have crossed this sort of bridge and come up with a better approach.
Yours views and opinions will be highly appreciated.