the options should be based on the product, not the category, you may have one coat available in small medium and large, and another coat only available in small and medium.
in the free eCommerce database that we make available, there are three tables for options:
1) optiongroups - this table defines the types of options, "Size", "Color"
2) options - this table defines the option names, "small", "medium", "red" or "blue" for example. it uses the OptionGroupID column to relate each option to the options group defined in the optionsgroups table using the optiongroups.optionGroupID column.
3) productoptions - this is a linking table that creates a many to many relationship between the options and the products. it is used to assign an option to a product.
productoptions.productID relates to the products.ProductID column
productoptions.OptionID relates to the options.optionID column
see the Product Options with eCart tutorial on the eCart support page for more details: