Pereiti prie turinio

Pagalbos del picerijos duomenu bazes schemos


Rekomenduojami pranešimai

Sveiki, taip isejo, kad destytojas linkes, kad patys mokytumemes, mazai ka aiskina. Atsiskaitymo metu net nezada pasakyti, kas blogai ir pataisyti - ivertina neigiamu ir vaziuojam toliau. Del duomenu baziu galiu nepraeiti semestro, butu labai jau ######ed up.

Esme tame, kad dabar duomenu baze reik ikelt ir i serveri, taciau mano duomenu baze neveikianti. Gal kas dirba su duomenu bazem ne viena menesi ir iskart uzmatys, kur klaida...

Svarbu, kad vienas zmogus galetu uzsakyti daugiau nei viena pica ir pan. Ziurejau ir angliskuose tinklapiuose, niekas neiseina.

Isgelbesit studento gyvybe, jei padesit... :D

 

Prisegu savo db dabartinej situacijoj

post-124791-0-34659900-1607268853_thumb.png

Redagavo asite
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Untitled.png

 

 

Picos, KitiPatiekalai, Padažai sumetam į vieną lentelę "products" ir susirišam su kategorijom. Kategorijose susikursi "Picos", "Kiti Patiekalai", "Padažai" ir t.t. (parent_id pridėtas, jeigu prireiks subkategorijų tarkim picoms).

 

Į užsakymą galės dėt kiek nori produktų (order_items lentelė).

 

SQL:

 

CREATE TABLE `clients` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `name` varchar(255),
 `surname` varchar(255),
 `phone` varchar(255),
 `address` varchar(255),
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `deliverers` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `name` varchar(255),
 `surname` varchar(255),
 `phone` varchar(255),
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `order_items` (
 `order_id` int,
 `product_id` int,
 `quantity` int DEFAULT 1
);

CREATE TABLE `orders` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `client_id` int NOT NULL,
 `deliverer_id` int,
 `status` varchar(255),
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `products` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `category_id` int,
 `name` varchar(255),
 `price` float,
 `description` text,
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `categories` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `name` varchar(255),
 `description` text,
 `parent_id` int DEFAULT null,
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

ALTER TABLE `order_items` ADD FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`);

ALTER TABLE `order_items` ADD FOREIGN KEY (`product_id`) REFERENCES `products` (`id`);

ALTER TABLE `orders` ADD FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`);

ALTER TABLE `orders` ADD FOREIGN KEY (`deliverer_id`) REFERENCES `deliverers` (`id`);

ALTER TABLE `products` ADD FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`);

ALTER TABLE `categories` ADD FOREIGN KEY (`parent_id`) REFERENCES `categories` (`id`);

Redagavo Nocturne
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš tai siūlyčiau tiesiog "susikurti" užsakymus, ir žiūrėti kurioj vietoj į lenteles surašant duomenis kažkas nesigauna.

Taip greit pažiūrėjus tai ryšiai tarp krepšelio bei picos, padažų ir kitų patiekalų negeri. Taip pat nėra galimybės į krepšelį įdėti kelių picų, jeigu yra toks reikalavimas?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Untitled.png

 

 

Picos, KitiPatiekalai, Padažai sumetam į vieną lentelę "products" ir susirišam su kategorijom. Kategorijose susikursi "Picos", "Kiti Patiekalai", "Padažai" ir t.t. (parent_id pridėtas, jeigu prireiks subkategorijų tarkim picoms).

 

Į užsakymą galės dėt kiek nori produktų (order_items lentelė).

 

SQL:

 

CREATE TABLE `clients` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `name` varchar(255),
 `surname` varchar(255),
 `phone` varchar(255),
 `address` varchar(255),
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `deliverers` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `name` varchar(255),
 `surname` varchar(255),
 `phone` varchar(255),
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `order_items` (
 `order_id` int,
 `product_id` int,
 `quantity` int DEFAULT 1
);

CREATE TABLE `orders` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `client_id` int NOT NULL,
 `deliverer_id` int,
 `status` varchar(255),
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `products` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `category_id` int,
 `name` varchar(255),
 `price` float,
 `description` text,
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `categories` (
 `id` int PRIMARY KEY AUTO_INCREMENT,
 `name` varchar(255),
 `description` text,
 `parent_id` int DEFAULT null,
 `created_at` datetime DEFAULT CURRENT_TIMESTAMP
);

ALTER TABLE `order_items` ADD FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`);

ALTER TABLE `order_items` ADD FOREIGN KEY (`product_id`) REFERENCES `products` (`id`);

ALTER TABLE `orders` ADD FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`);

ALTER TABLE `orders` ADD FOREIGN KEY (`deliverer_id`) REFERENCES `deliverers` (`id`);

ALTER TABLE `products` ADD FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`);

ALTER TABLE `categories` ADD FOREIGN KEY (`parent_id`) REFERENCES `categories` (`id`);

be galo dekoju!!!:)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...