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;