• 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 ?

0 głosów
77 wizyt
pytanie zadane 27 lutego 2018 w PHP, Symfony, Zend 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 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 76 wizyt
0 głosów
1 odpowiedź 182 wizyt
0 głosów
1 odpowiedź 200 wizyt
pytanie zadane 4 października 2017 w PHP, Symfony, Zend przez Skyterix Początkujący (490 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

66,379 zapytań

113,130 odpowiedzi

239,489 komentarzy

46,637 pasjonatów

Przeglądających: 326
Pasjonatów: 9 Gości: 317

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...