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:
enum PaymentStatusEnum:int { case NOT_SPECIFIED = 0; case PENDING = 1; case PAID = 2; case COD = 3; case ALLEGRO_EXTENDED_TERM = 4; }
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.