approach 1) products will be organized in fixed three and only three levels
category->subcategory->products
so even for a category only has one subcategory, we still handle it like category->subcategory->products
for a large category, we will still have to end up with.
category->subcategory->products
this approach will not allow dynamically add subcategory levels.
approach 2) products will be organized into different level of sub-categories, the levels of the subcategories are dynamically added/edited.
such as it could be
category->subcategory->products
category->subcategory->sub..category->products
category->products
in theory, the subcategory levels could be dynamically added from 0 to n levels.
Here are the advantages/disadvantages of approach 1) and approach 2)
approach 1) advantages/disadvantages
a) It is simple. Simple to program, update, management. Simple to custom design the category and subcategory pages. Even simple to use for the merchants or shoppers.
b) Because it is simple, the category->subcateogry and subcategory->product could be in "many to many" table relationships. Which add some flexibility for the merchants who wants one subcategory belongs to more than one categories. or one product belongs to more than one subcategories.
approach 2) advantages/disadvantages
a) It is more difficult than fixed 3 levels approach. So it is also more difficult to custom design the category page, and the subcategory page differently. Because in this approach, the category and subcategory are the same actually.
b) It will also make the shopping process a little difficult to custom design. If it is fixed 3 level, only 3 situations we need to consider, you are in category, or subcategory or product page. But for this dynamic approach, the subcateogory level could be in different for each category. So to avoid the confusion, we may just have to make call category and sub..category pages look the same.
c) It is difficult for making the category level dynamically added but at the same time, make the category->subcategory, subcategory->subsubcategory, sub..category-products "many to many" table relations. So we will have to use "1 to many" relations here. So we win the flexibility in adding the levels of category but we lose the flexibility of make the products belong to different subcateoies etc.
d) But dynmaic add levels of category could make this system good for category->product, or category->subcategory->product, or cateogry->n levels subcategory->products. Also it is more like a real life (or unix/windows folder structure).
Most of our clients will be small to middle size business,
fixed category->subcategory->product catalog system applies to them pretty well.
But once a while, they may end up with a category only have one subcategory. or sometimes, they may also wish to have category->subcategory->subsubcategory->products. But the chances are very rare that they need it.
Now here comes my questions
1) To design a more general purpose / easy to use, easy to custom modify, simple system, should I stay with fixed category->subcategory->product system?
or
2) Should I go for the dynamic added levels system.
I prefer approach 1. Dynamical add subcategory level is cool. But it did bring some difficulties and make some custom features difficult to apply. Too many levels of subcategories will make the end user (shopper) confused too.
Any opinions?
Thanks!