[MySQL][PHP]Struktura bazy danych. |
[MySQL][PHP]Struktura bazy danych. |
16.08.2022, 11:17:21
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 16.08.2022 Ostrzeżenie: (0%) |
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:
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. |
|
|
16.08.2022, 11:58:18
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 Dołączył: 27.12.2004 |
Po to wprowadzono NULLe by uzywac
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 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 01:47 |