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

Identyfikacja podstawowego rekordu dla danego użytkownika ( rekordu )

Object Storage Arubacloud
0 głosów
216 wizyt
pytanie zadane 31 lipca 2017 w SQL, bazy danych przez kevin Mądrala (5,010 p.)

Witam!

Co oznacza wartość NULL w bazie danych ? Jeżeli w phpmyadmin zaznaczę przy dodawaniu pola w tabeli chceckboxa NULL to co to będzie oznaczało ? Że w tym rekordzie jest wpisana wartość NULL czy może że zmienna przechowująca wartość dla tego rekordu nie istnieje i nie zajmuje miejsca ?

Mam taką strukturę w bazie:

Tabela: Użytkownicy

Tabela: Grupa

Tabela: Przedmioty

Przedmioty posiada id ( auto_increment ) tabeli Grupa a tabela Grupa posiada id ( auto_increment ) tabeli Użytkownicy, więc przedmiot przyporządkowuję grupę a grupę użytkownikowi. Na starcie użytkownik dostaje grupę domyślną której nie da się usunąć i zawiera domyślne przedmioty i tę grupę chcę jakoś identyfikować, ale jak ? Wymyśliłem że dam dodatkową zmienną is_default i przy jej pomocy będę identyfikował ową grupę. Ale skoro tylko jedna tabela będzie miała wartość true a reszta ( użytkownik może mieć ich nawet 100 to zależy od niego ) wartość false to czy nie jest to marnowanie pamięci ? Inne rozwiązanie, każda grupa posiada swoją nazwę. Użytkownik tworząc grupy ustawia sam jej nazwę więc może zablokować możliwość dodania użytkownikowi grupy w pewnej nazwie np. default i po tej nazwie identyfikować grupę podstawową ? Bądź zostawię ją bez nazwy bo użytkownik nie może dodać grupy bez nazwy a za pomocą php przy tworzeniu konta mam taką możliwość ale uważam że to dziwne rozwiązanie skoro założenie jest takie że nazwa grupy musi istnieć. Zbędna informacja: użytkownik tworząc grupę sam dodaje przedmioty jakie chce mieć w danej grupie, może też dodawać je do grupy podstawowej ale ta podstawowa grupa musi istnieć.

 

Pozdrawiam.

1 odpowiedź

0 głosów
odpowiedź 31 lipca 2017 przez Alex.Ironside Stary wyjadacz (14,900 p.)
Jezeli jest nullable to znaczy ze wartosc moze byc null. Null oznacza niewiadoma
komentarz 31 lipca 2017 przez kevin Mądrala (5,010 p.)
Czyli nie doszukiwać się w tym głębszego sensu ? Jak jest null dla np. tekstu to ten null może oznaczać np. że tekstu nie ma ? Ale miejsce w pamięci dalej jest zajmowane ?
komentarz 31 lipca 2017 przez Alex.Ironside Stary wyjadacz (14,900 p.)
Mniej wiecej. Null oznacza ze cos tam jest ale nie wiadomo co. Mniej wiecej. W Head First SQL fajnie to wyjasnili. jezeli cos jest nullable to znaczy ze bez tej informacji moze baza danych funkcjonowac. Np nr buta ucznia w bazie danych w liceum. Nullable sa tez wartosci ktore nie kazdy rekord bedzie posiadal. Np nr dowodu w bazie uczniow w liceum.
komentarz 31 lipca 2017 przez kevin Mądrala (5,010 p.)
Chyba rozumiem, jeżeli mam pole z liczbą i chce aby to pole w rekordzie było uznane za nieokreślone bo każda wartość liczbowa może rozpocząć pewną akcję skryptu po odczytaniu wartości to daje wtedy też NULL. A jak NULL odnosi się do mojego problemu ?
komentarz 31 lipca 2017 przez Alex.Ironside Stary wyjadacz (14,900 p.)
Nie do konca rozumiem o co chodzi. Null jest niewiadoma. Moze byc intem, moze byc stringiem, bajtem, albo boolem. Tego po prostu sie nie wie. Ale jako tako o ile wiem mozemy jedynie sprawdzic czy jest null. Poza tym null nam o ile wiem nic nie daje. Jedynie pozwala na niezidentyfikowane wartosci w bazie
komentarz 31 lipca 2017 przez Alex.Ironside Stary wyjadacz (14,900 p.)
Ale jezeli chcesz zeby pole liczbowe moglo zostac puste dasz nullable. Ale jezeli Twoj skrypt bedzie oczekiwal inta a dostanie nulla to tylko Cie okrzyczy ze nie wie o co Ci chodzi
komentarz 31 lipca 2017 przez Alex.Ironside Stary wyjadacz (14,900 p.)
To co chcesz zrobic w bazie chyba rozwiaze foreign key i relacja wiele do wielu
komentarz 31 lipca 2017 przez kevin Mądrala (5,010 p.)

Tak ale zawszę mogę sprawdzić czy w polu jest NULL czy liczba.

Czyli jest sens tworzyć dodatkowe pole skoro tylko jeden rekord będzie miał wartość true a reszta false dla danego użytkownika ? Jakieś inne rozwiązania ?

komentarz 1 sierpnia 2017 przez Alex.Ironside Stary wyjadacz (14,900 p.)
Moze oddzielna tabela?

Cos takiego

| id                 | INT
| UserName | VARCHAR  
| IsTrue         | BOOLEAN

I relacja miedzy tabelami do czegokolwiek sie to true odwoluje.

Podobne pytania

0 głosów
1 odpowiedź 795 wizyt
pytanie zadane 9 listopada 2017 w SQL, bazy danych przez hakiros54 Obywatel (1,160 p.)
0 głosów
2 odpowiedzi 907 wizyt
0 głosów
1 odpowiedź 786 wizyt
pytanie zadane 21 lutego 2017 w JavaScript przez Zainteresowany Nowicjusz (240 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!

...