• 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
70 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
1 odpowiedź 136 wizyt
0 głosów
1 odpowiedź 191 wizyt
pytanie zadane 4 października 2017 w PHP, Symfony, Zend przez Skyterix Początkujący (490 p.)
+1 głos
1 odpowiedź 81 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

62,468 zapytań

108,621 odpowiedzi

226,795 komentarzy

36,303 pasjonatów

Przeglądających: 69
Pasjonatów: 2 Gości: 67

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.

...