Not all of these fields are necessary in one database. For example, with Size and color you can see the "Quick & Dirty" approach using AvailableSizes and AvaliableColors or the SizeID and ColorID ...