Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [MySQL][PHP]Struktura bazy danych.

Napisany przez: Intenso 16.08.2022, 11:17:21

Cześć,
tworzę swoją pierwsza aplikację w Laravelu i mam 2 zagwozdki.

Aplikacja pobiera zamówienia z Allegro i najpierw pobiera zamówienie bez danych (sam nick klienta i zamówione produkty). Następnie po opłaceniu uzupełniam resztę danych. Aby to zrobić musiałem ustawić 80% pól w bazie na NULLABLE. Czy takie rozwiązanie jest poprawne czy powinienem to zrobić w inny sposób?

Drugi dylemat to przechowywanie statusów w bazie. Mam pola np. status, payment_status, delivery_method itd. Teraz mam to zrobione tak, że w aplikacji mam zdefiniowane enumy np:

  1. enum PaymentStatusEnum:int
  2. {
  3. case NOT_SPECIFIED = 0;
  4. case PENDING = 1;
  5. case PAID = 2;
  6. case COD = 3;
  7. case ALLEGRO_EXTENDED_TERM = 4;
  8. }


i przechowuje w bazie same inty. Jednak jak patrzę w bazę to wydaje mi się to zupełnie nieczytelne. Na rozwiązanie tego mam 2 pomyły - zamiast intów przypisać do tych enumów jakies wartości typu PAID czy COD i pakować do bazy stringi lub utworzyć w bazie tabele z pivotem do tych intów. Najprościej byłoby mi po prostu zmienić enumy z int na string jednak nie wiem czy do końca tak to powinno wyglądać. Który sposób jest najbardziej optymalny? Wiem, że są to z pozoru błache problemy natomiast dopiero zaczynam i chciałbym wiedzieć jak to powinno być poprawnie zrobione.

Napisany przez: nospor 16.08.2022, 11:58:18

Po to wprowadzono NULLe by uzywac wink.gif
Jesli pole w bazie jest typu ENUM to trzymanie tam numerkow jest totalnie bez sensu. Po to wprowadzono ENUM by wkladac tam czytelne wartosci, wiec tak, zamien na tekst. To i tak w bazie nie bedzie zapisane jako tekst tylko numerek a baza bedzie wyswietlac tekst

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)