• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[Laravel, MySQL] Projekt DB gdzie jedna kolumna zmienia wartosc po dodaniu innego rekordu - jak ?

Object Storage Arubacloud
0 głosów
191 wizyt
pytanie zadane 27 lutego 2018 w PHP przez Daniel Śmigiela Nowicjusz (240 p.)
Witam.

Projektuję stronę dla klienta, który jest restauracją i nie wiem jak zrobić bazę danych aby odpowiadała standardom lokalu.

Ich menu zawiera pozycje ponumerowane odpowiednio. Całe menu jest poodzielone na kategorie. Zakładamy, że kategoria pierwsza to numery potraw 1-10 , druga to 11-20 .. itd ... Jeśli klient dopisuje do kategorii pierwszej potrawę wtedy logicznie rzecz biorąc kategoria pierwsza ma nr 1-11 a druga 12-21 itd .. numeracja całego menu się przesuwa ..

Klientowi zależy na utrzymaniu tego standardu.

Utworzyłem tabele, która oprócz ID ma position_no gdzie ustawiamy nr potrawy zgodnie z menu.

Jak jednak zaprojektować to, aby w momencie dodania przez klienta wspomnianego rekordu nr 11 do kategorii pierwszej cała baza się przesuneła ?

Mam jedną tabelę pod wszystkie potrawy i relacyjnie odnoszę się do kategorii potraw przez id ..

Przeszło mi przez myśl, aby dla każdej kategorii potraw utworzyć osobna tabelę, ale myślę, że to zbyt duże kombinowanie i niepootrzebny bałagan a na pewno da się to zrobić prościej, korzystając z jednej tabeli.

Jakieś pomysły ?

1 odpowiedź

0 głosów
odpowiedź 6 lutego 2019 przez Przemysław Obywatel (1,510 p.)

Niech new_position_no będzie numerem określającym pożądany numer nowej potrawy. 
Przed dodaniem nowej potrawy poleceniem INSERT (w którym to wstawisz swoje new_position_no), musisz wywołać polecenie, które przesunie wszystkie potrawy o numerze większym lub równym od niż nowo utworzonej. Wykorzystaj do tego polecenie:

UPDATE nazwa_tabeli SET position_no = position_no+1 WHERE position_no >= new_position_no

Pamiętaj, aby polecenie INSERT zastosować dopiero po wywołaniu powyższego polecenia.
W przeciwnym wypadku przesunie się również nowo dodany rekord.

Podobne pytania

0 głosów
0 odpowiedzi 207 wizyt
pytanie zadane 23 lipca 2019 w SQL, bazy danych przez Kacperhehe Bywalec (2,930 p.)
0 głosów
1 odpowiedź 2,468 wizyt
0 głosów
1 odpowiedź 179 wizyt
pytanie zadane 7 lipca 2020 w PHP przez xnerwo Gaduła (3,270 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...