• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[MariaDB] Prośba o code review pliku sql

Object Storage Arubacloud
0 głosów
103 wizyt
pytanie zadane 13 stycznia w SQL, bazy danych przez whiteman808 Obywatel (1,820 p.)
edycja 13 stycznia przez whiteman808

Piszę zapytanie do MariaDB, które mam zamiar przełożyć później na kod php i proszę o code review pliku SQL

CREATE TABLE IF NOT EXISTS user_roles (
    id int(11) NOT NULL auto_increment,
    name VARCHAR(255) NOT NULL default '',
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS users (
    id int(11) NOT NULL auto_increment,
    username varchar(255) NOT NULL default '',
    passwd varchar(255) NOT NULL default '',
    email varchar(255) NOT NULL default '',
    created_at datetime NOT NULL,
    role_id int(11) NOT NULL default 0,
    PRIMARY KEY (id),
    FOREIGN KEY (role_id) REFERENCES user_roles (id)
);

CREATE TABLE IF NOT EXISTS posts (
    id int(11) NOT NULL auto_increment,
    title varchar(255) NOT NULL default '',
    content text NOT NULL,
    author_id int(11) NOT NULL default 0,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (author_id) REFERENCES users (id)
)

 

komentarz 14 stycznia przez tkz Nałogowiec (42,000 p.)
Dlaczego nie użyjesz SERIAL?
Domyślne wartości powinny być na poziomie kodu, nie bazy. Jak zmienią Ci się wymagania biznesowe, to będzie trzeba przebudować bazę. Będzie rozjazd pomiędzy nową wersją aplikacji, a starą na poziomie bazy - dużo mniejsze pole do zmiany.
Not null i default mi nie leży. Skoro oczekujesz nie bycia nullem, to nie wstawiaj domyślnej wartości - znowu - na poziomie bazy.
IF NOT EXISTS jest bez sensu, jak zmienisz schemat, to i tak nie zostanie nic zgłoszone w samej bazie tylko apka Ci się wysypie w najgorszym przypadku. Wykonujesz SQLa, niech się wysypie.
Czysto stylistycznie. Jak odnosisz się do bazy, odnosisz się zazwyczaj do konkretnego pola. Często spotykana praktyka to pisanie w liczbie pojedynczej.

1 odpowiedź

0 głosów
odpowiedź 13 stycznia przez Wiciorny Ekspert (270,190 p.)
Jedynie co bym od siebie dodał, że defaultowo wszelkie ID nie warto ustawiać na 0, dlaczego? Bo to oznacza, że dla ID-> 0 będziesz miał relacje,
PO pierwsze wszelkie istotne ID Użytkownika, ROLI sa jak widzisz AUTO_INCREMENT, więc notacja zwykle jest od 1,
Natomiast jako klucze obce  defultowo posyłasz wartości 0, co nie jest dobrą praktyką, zrezygnowałbym z wartości default na rzecz ID-ków, które stanowią klucz obcy relacji.
komentarz 13 stycznia przez whiteman808 Obywatel (1,820 p.)
Czy typy danych takie jak int, varchar, datetime dawać zapisane wielkimi czy małymi literami?
komentarz 13 stycznia przez whiteman808 Obywatel (1,820 p.)
sqlfluff podpowiada mi by zapisywać inty, varchar itp. małymi literami, datetime. Zastanawia mnie szczególnie datetime
1
komentarz 13 stycznia przez Wiciorny Ekspert (270,190 p.)

konwencje tego typu są różne, należy jednak przyjąć te same normy na projekt.
Jeśli stosujesz małe litery, to tak stosuj, jeśli duże, to wszedzie analogicznie duże.

Nie ma rzeczy lepszej/gorszej, coś może być bardziej czy mniej czytelne, ale często jest to związane już z przyjętą praktyką, ważne, żeby raz przyjęta praktyka była utrzymana

Uwazam, żę  mniejszy format typu danych jest znacznie czytelniejszy niż pisane w formacie dużych liter.
za wyjątkiem pewnych z góry ustalonych słów kluczowych danego języka tak jak tutaj:  FOREIGN KEY, KEY, REFERENCES etc. 

Podobne pytania

+1 głos
1 odpowiedź 217 wizyt
pytanie zadane 9 marca 2020 w Nasze poradniki przez oracledev Użytkownik (620 p.)
+3 głosów
0 odpowiedzi 248 wizyt
pytanie zadane 9 września 2022 w C# przez Artur Koniec Gaduła (3,670 p.)
0 głosów
0 odpowiedzi 159 wizyt
pytanie zadane 13 sierpnia 2022 w C i C++ przez Cixo Gaduła (4,070 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...