Autor | Zpráva | ||
---|---|---|---|
Cipísek055 Profil * |
#1 · Zasláno: 1. 4. 2017, 16:42:55
Dobrý den,
chtěl bych se zase zeptat na Vaší radu. Zajímá mne, jak by jste ideálně řešili strukturu variant produktů v e-shopu. Tedy, máme tabulku products (hlavní info o produktu, cena a dále subproduct_id = 0 = hlavní produkt ) products_lang ( zde texty, jazyk ID, název produktu atd..(pro každý jazyk samostatný řádek) propojeno vždy s product_id products_stock ( sklad produktu, zásoba...) ... Teď mám tabulku s daty, data_variants ( barva, rozměr, velikost.. ) A chci, abych mohl mít u produktu více možných variant, tedy u tabulky "products" vytvořím samostatný produkt s tím, že "subproduct_id" bude ID hlavního produktu. Jen teď nevím, jak řešit např. že bude mít produkt např. Varianta = VELIKOST = L Varianta = BARVA - BÍLÁ SKLAD varianty = - 6 KS Tedy aby se následně v objednávce dali vypsat k výběru třeba "bílá / vel. S" a vyhodí mu to "skladem, není skladem, 2ks".. A přemýšlím, jak to co nejlépe udělat databázově, aby šli kombinovat varianty se skladem. Napadá mě staticky products_variants = a sloupce product_id / barva / velikost / a vygenerovat to. Jenže varianty jsou dynamické a musel bych po úpravých variant měnit sloupec (třeba přidám variantu "Typ" (dřevo, plast..) tak bych musel hodit ALTER TABLE na sloupec products_variants a přidat mu "typ" sloupec, což se mi nezdá jako ideální řešení... Díky za pomoc :) |
||
H13 Profil |
#2 · Zasláno: 1. 4. 2017, 19:01:31
Ahoj,
takovej ten základ je: produkty (ID, jmeno, ...) - 1-Tričko, 2-Košile produkty_atributy (ID atributu, ID produktu) - 1-Velikost ... 1, 2-Barva ... 1 produkty_atributy_volba (ID volby, ID atributu) - 1-L ... 1, 2-XL ... 1, 3-XXL ... 1, 4-Červená ... 2, 5-Modrá ... 2, 6-Žlutá ... 2 s tím, že tímhle vyřešíš situaci, kdy nebude docházet ke kombinaci atributů Jakmile bude docházet ke kombinaci atributů: Produkt: Tričko Atributy: Velikost, Barva Volby: (L, XL, XXL), (Červená, Modrá, Žlutá) A k prodeji bude Produkt Tričko ve velikosti L a barvě Žlutá, pak budeš muset propojit i jednotlivé atributy a volby. |
||
Cipísek055 Profil * |
#3 · Zasláno: 1. 4. 2017, 22:08:09
Nad tim jsem přemýšlel taky, ale nedomyslel jsem to, jak by vypadalo, abych zjistil počet na skladu
Tričko adidas, velikost L v modré barvě ...3kusy Nebo boty nike, velikost 46, typ airmax, barva modré..že jich je 4 kusy |
||
Keeehi Profil |
#4 · Zasláno: 2. 4. 2017, 06:03:06
Ten hlavní produkt bude mít přiřazeny všechny varianty (aby systém věděl jaké všechny varianty existují i když by nebyly v databázi, ale není to nutnost).
Každá varianta produktu má svůj vlastní záznam. Na ně se vážou skladové zásoby. Tudíž budeš mít záznam ID=8, parent ID=3, stock=38(ks) No a v produkty_atributy_volba bude (1,8) které definuje danou variantu trička jako L a (5,8) což zase říká, že ta varianta je modrá. |
||
Cipísek055 Profil * |
#5 · Zasláno: 2. 4. 2017, 09:33:05
Vytvořil jsem si návrh/náhled, jak zatím chápu design tabulek s příklady.
Můžete mi prosím pomoct se správným navedením ? Zajímala by mě taky funkce, pokud ovládáte PHP nebo příkaz v MySQL Něco, jak by vypadalo zjištění počtu kusů např. pro to tričko. Stále v tom plavu :/ , díky všem varianty ____________________________________________ ID NAZEV 1 - BARVA 2 - VELIKOST varianty_data ____________________________________________ ID ID_VARIANTY NAZEV 1 - 1 - ČERNÁ 2 - 1 - MODRÁ 3 - 1 - ZELENÁ 4 - 2 - 40 5 - 2 - 36 6 - 2 - 38 produkty ____________________________________________ ID SUBCATEGORY_ID NAZEV POPIS //subcategory_id = "varianta" produktu, která může mít komplet vlastní parametry/cenu..ať nevytvářím zbytečně další stejnou tabulku ? // 1 - 0 - Boty nike VZ - Krásné super boty // 7 - 1 - Subboty nike Airmax VZ - Krásné super boty airmax produkty_sklad ____________________________________________ ID ID_PRODUKTU ID_SKLADU AMOUNT // 1 - 1 - 1 - 50 (50ks) // 1 - 7 - 1 - 20 (20ks) produkty_varianty ____________________________ ID ID_PRODUKTU ID_VARIANTY 1 - 7 - 1 2 - 7 - 2 produkty_varianty_data ____________________________ ID ID_PRODUKTU ID_VARIANTY_PRODUKTU ID_VARIANTY_DATA 1 - 7 - 1 - 2 (modrá) 2 - 7 - 2 - 5 (vel. 36) |
||
Časová prodleva: 9 dní
|
|||
Cipísek055 Profil * |
#6 · Zasláno: 10. 4. 2017, 23:16:31
Neporadil by někdo ?
|
||
Časová prodleva: 3 dny
|
|||
H13 Profil |
#7 · Zasláno: 13. 4. 2017, 13:19:24
Ještě tam je problém v tom, že atributy můžeš kombinovat nekonečněkrát - tedy můžeš mít třeba 10 atritubů a všechny je můžeš kombinovat. Pak je otázka, jestli není lepší každou kobminaci ukládat pod nějakým speciálním hashem?
|
||
Časová prodleva: 6 let
|
0