Nasıl bu özelleştirilmiş e-ticaret veri tabanı modeli oluşturmak gerekir?

3 Cevap php

Ben sıfırdan bir e-ticvardırt web sitesi oluşturmak ve özel bir ürün yapılveırma sayfası yapmak zorunda duyuyorum.

Bu ürün sadece 1 tip, ama birkaç düzeyde yapılveırılabilir:

  1. Renk (yaklaşık 4 farklı seçenek). Değer bir VARCHAR olduğunu.
  2. Malzeme (yaklaşık 10 farklı seçenek). Değer bir VARCHAR olduğunu.
  3. Boyut (Yaklaşık 30 farklı seçenek). 2 Değerler, bir genişlik sütun ve yükseklik sütun vardır.
  4. (Yaklaşık 20 farklı seçenek) bitirin. Değer bir VARCHAR olduğunu.
  5. Diğer çeşitli VARCHAR seçenekleri vb

Benim soru bu tipik bir MySQL veritabanı gibi bakmak ne olduğunu. Her seçeneğin türü veya sadece tek bir tablo için bir tablo var ve bir şekilde onu yeterince sütunları vermek ve tüm seçenekleri saklamak var mı? Ben emir depolamak ve aynı zamvea bir tablo sipariş için bilgi depolamak mümkün olması gerekir.

Ben de normal bir mağaza gibi, customizeable değildir raf ürünleri off sahip olmak istiyorum.

Herhangi bir yardım takdir edilmektedir!

3 Cevap

Ben size ürün bilgileri ile, bir ana tablo ile gitmek öneririz, ve arama tabloları bir takım, o ana tabloya bağlanır.

Bu gibi görünmelidir:

Product_table:
   ID primary key,
   ColorInt int foreign key lkp_Color_table.ID,
   Material_int foreign key lkp_Material_table.ID,
   // snip the rest

Ve burada arama tablosu bulunuyor:

lkp_color_table:
   ID primary key,
   ColorStr varchar,
   description varchar

lkp_Material_table:
   ID primary key,
   MaterialStr varchar,
   description varchar

Product_table Bu şöyle olabilir:

ID||ColorInt||Material
1 ||1       ||1
2 ||1       ||2

lkp_color_table bu gibi bakabilirsiniz Oysa:

ID||colorstr||description
1 ||red     ||red color
2 ||blue    ||blue color

lkp_color_table kullanılmayan color, aynı diğer arama tabloları için de geçerli içerebilir unutmayın. 30 mümkünse renk varsa Yani, sadece bu yüzden üzerine lkp_color_table 30 öğeleri ile doldurmak, ve var.

Oluşturmak için gerek yoktur, ayrı bir Product_id Her renk-malzeme-kombinasyonu için, sadece bunu kullanmak eğer bir product_id oluşturmak zorunda.

2 + N tablolar:

  • Ürünler (katalogda her ürün, burada bir kaydı var
  • SpecialKindOfProduct (Sizin yapılandırılabilir ürün türü, bir product_id ve tablolar arama için bir demet yabancı anahtarları (color_id, size_id, vb)
  • N Arama Tabloları (renk, boyut, vb)

Eğer gelecekte yapılandırılabilir bir ürün second tür eklediğinizde, sadece AnotherSpecialKindOfProduct oluşturun.

Bu takip için yeterince açıktır umarım.

Ana avantajı tüm ürünler paylaşılan bazı özelliklerini ("Ürünler" sütunlar) var, ama aynı zamanda genişletilmiş öznitelikleri olabilir.

Kolayca SOL SpecialKindOfProduct, vb Ürünler katılarak gereken her şeyi seçebilirsiniz

Sana ihtiyacım edeceğiz söyleyebilirim:

OrderTable (SiparişNo, MüşteriNo, Tarih, Fiyat, Sevkiyat, ...)

OrderProductTable (SiparişNo, ProductID, Miktar)

ProductTable (ProductID, StandardBit, ColorID, Option2ID, ..., OptionNID); StandardBit - to know if product is standard or configurable.

CustomerTable (MüşteriNo, ...)

ShipmentTable ()

Her yapılandırılabilir seçenek (OptionID, Açıklama) için OptionTable.