1.6. Ապրանքներ և կարգեր - ստեղծում ենք տվյալների բազայի աղյուսակներ
Նախքան ապրանքների և կարգերի ֆունկցիոնալը ստեղծելը, եկեք մտածենք՝ ինչ տեղեկություն է անհրաժեշտ մեր հաճախորդներին և կայքի ադմինիստրատորներին։ Պետք է տրամադրել բավարար ինֆորմացիա ապրանքի մասին՝ անուն, մանրամասն նկարագրություն, գին։ Կարող ենք նաև տեղադրել հիմնական և լրացուցիչ նկարներ։ Հնարավոր է անհրաժեշտ լինի ապրանքի քաշը՝ առաքման արժեք հաշվարկելու համար։ Պահեստում առկա քանակը՝ որպեսզի չվաճառենք այն, ինչ չկա։ Ադմինիստրատորի համար անհրաժեշտ է ապրանքի ID և որոնման համակարգերի համար հարմար URL։
Արդյունքում պետք է ունենանք առնվազն այս դաշտերը՝
| Տվյալ | Նկարագրություն |
| ID | Ներքին համակարգային նույնականացուցիչ |
| Name | Ապրանքի անուն |
| ՉՊՈւ | Ընթեռնելի URL որոնման համակարգերի համար |
| Description | Մանրամասն նկարագրություն |
| SKU | Ապրանքի կոդ օգտատերերի համար |
| Price | Ապրանքի գին |
| Stock | Պահեստում առկա քանակը |
| Primary image | Հիմնական նկար |
| Additional images | Լրացուցիչ նկարներ |
Հետագա հոդվածներում այս ցանկը կթարմացնենք։
Ապրանքների կարգերը ունեն իրենց դաշտերը՝
| Տվյալ | Նկարագրություն |
| ID | Ներքին նույնականացուցիչ |
| Name | Կարգի անուն |
| Description | Կարգի նկարագրություն |
| ՉՊՈւ | Ընթեռնելի URL |
Մենք կարող էինք անմիջապես անցնել տվյալների կառուցվածքի իրագործմանը, սակայն կորցնելու էինք ճկունություն։ Եթե գտնենք ընդհանուր տեղեկությունները և ստեղծենք բովանդակության աբստրակտ տեսակ, ապա մեր ֆրեյմվորկը կդառնա ավելի ճկուն։ Դա թույլ կտա օգտագործել ընդհանուր ֆունկցիոնալ առանց կրկնությունների։ Օրինակ՝
- Բովանդակության տարբերակներ (revision)
- Մուտքի իրավունքների սահմանում
- Մեկնաբանություններ
- Գնահատականներ
Էջեր
Սրանք կայքի ստատիկ բաժիններն են՝ «Կապ», «Առաքում և վճարում» և այլն։ Դաշտերը՝
| Տվյալ | Նկարագրություն |
| Name | Էջի անուն |
| ՉՊՈւ | URL |
| ID | Ներքին ID |
| Heading | h1 թեգի բովանդակություն |
| Title | <title> թեգի բովանդակություն |
| Content | Էջի բովանդակություն |
| Keywords | meta-keywords |
| Description | meta-description |
Content
Սա բազային բովանդակության տեսակն է, որը կընդլայնենք՝ ավելացնելով դաշտեր։
| Տվյալ | Նկարագրություն |
| ID | Ներքին նույնականացուցիչ |
| Name | Անուն |
| ՉՊՈւ | |
| Content | Բովանդակություն |
| Type | Տեսակ (օր.՝ page, product) |
| Order | Դասակարգում (menu համար) |
| Parent | Ծնող (հիերարխիա) |
| Meta keywords | Հիմնաբառեր |
| Meta description | Մետա նկարագրություն |
| Date created | Ստեղծման օր |
| Creator | Հեղինակ |
| Active | Ցուցադրել թե ոչ |
| Secure | Միայն մուտք գործածների համար |
Վերսիաներ
Մենք կունենանք մեր սեփական ռեվիզիայի համակարգ։
| Տվյալ | Նկարագրություն |
| ID | Բովանդակության ID |
| Current revision | Ընթացիկ ռեվիզիայի ID |
Այժմ երբ պլանավորեցինք տիպերը, կարող ենք ստեղծել տվյալների բազան՝ յուրաքանչյուր տիպի համար առանձին աղյուսակ։ Արդյունքում կունենանք՝
| Աղյուսակ | Նկարագրություն |
| Content | Ակտիվ ռեվիզիայի կապ և ընդհանուր դաշտեր |
| Versions | Ռեվիզիաներ |
| Content types | Բովանդակության տեսակներ |
| Products | Ապրանքի լրացուցիչ տվյալներ |
| Revision history | Ռեվիզիաների պատմություն |
Content աղյուսակ
| Դաշտ | Տիպ | Նկարագրություն |
| ID | Integer (auto increment) | Կապ այլ աղյուսակների հետ |
| Current_revision | Integer | Ռեվիզիայի աղյուսակի կապ |
| Active | Boolean | Արդյոք հրապարակված է |
| Secure | Boolean | Մուտքի իրավունք |
| Parent | Integer | Ծնող բովանդակություն |
| Order | Integer | Դասակարգման հերթականություն |
| Author | Integer | Հեղինակի ID |
| Type | Integer | Տեսակի ID |
| Path | Varchar | ՉՊՈւ |
SQL հարցումը՝ Content աղյուսակը ստեղծելու համար․
CREATE TABLE `content` ( `id` int(11) NOT NULL AUTO_INCREMENT, `current_revision` int(11) NOT NULL, `active` tinyint(1) NOT NULL, `secure` tinyint(1) NOT NULL, `parent` int(11) NOT NULL, `order` int(11) NOT NULL, `author` int(11) NOT NULL, `type` int(11) NOT NULL, `path` char(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;