Çok karmaşık bu konu. Sql eav model diye aratıp diğer veritabanı yapılarını, nasıl ilişki kurduklarını inceleyip; kendi sisteminize uygun bir yapıda karar kılın bence. Opencart veritabanını da inceleyebilirsiniz. Temelde son paylaştığınız görseldeki yapı aşağı yukarı doğru sayılabilir ancak her sisteme göre değişkenlik gösteriyor. Örneğin varyantların ürün kodu ve fiyatı farklı olabilir. Bunun için ürüne ait kod, fiyat ve stokların ayrı tutulduğu bir tabloya ihtiyacınız olabilir. Ya da bir üründe hem renk varyantı ve hem de beden varyantı bulunuyor olabilir ki kıyafet-ayakkabı gibi ürünlerde olur. Stokları kombine edebilmek için farklı bir tabloya ihtiyaç duyabilirsiniz. Dolayısıyla yerinizde olsam, örnekleri detaylıca inceleyip kendime en uygun ve uygulabilirliği kolay olan bir yapı seçip devam ederdim.