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

Problem z zaprojektowaniem bazy danych SQL

VPS Starter Arubacloud
0 głosów
163 wizyt
pytanie zadane 28 lutego 2019 w SQL, bazy danych przez pog(r)ubiony Początkujący (340 p.)
Witajcie!

Aktualnie projektuję niekomercyjnie małą bazę danych. Mam problem dotyczący tego, w jaki sposób rozplanować tabele lub strukturę bazy. W bazie danych przechowywane będą dane takie jak login, hasło oraz języki, jakie zna dana osoba. Docelowo chcę z tej bazy wysyłać e-maile użytkownikom z zadaniami do nauki języka lub języków (na podstawie tego, jaki język użytkownicy podali).

Problem pojawia się, kiedy dany użytkownik zadeklaruje znajomość np. 2 lub więcej języków obcych.

Nie wiem jak to ująć w bazie danych.

1. Wstępnie myślałem nad rozwiązaniem takim : jezyk 1, jezyk 2, jezyk 3 itp i tam umieszczać dane.

Np. Jan Kowalski - Język 1 - angielski

Tutaj jest problem, co wpisać w zawartości jezyk 2 i 3, kiedy ktoś deklaruje znajomość tylko 1 języka.

2. Drugie rozwiązanie nad którym myślę to zrobienie tabelek : angielski, niemiecki, francuski (i kilku kolejnych dla kolejnych popularnych języków). Wtedy te tabele miałby by wartość tylko 1 (zna) lub 0 (nie zna).

Chcę te języki dobrze ująć, żeby poźniej można było bezproblemowo w php pobierać te dane i wysyłać maile wg kryteriów np. wyślij maile tylko do tych użytkowników, którzy znają niemiecki. Wyślij maile tylko do tych, co znają angielski i niemiecki. itp.

Z chęcią przyjmę każdą sugestię.

Z informatycznym pozdrowieniem

Przemek

3 odpowiedzi

+1 głos
odpowiedź 28 lutego 2019 przez Greeenone Pasjonat (16,100 p.)

Użyj do tego pivot'a który będzie łączył użytkowników z językami

 

0 głosów
odpowiedź 28 lutego 2019 przez manjaro Nałogowiec (37,390 p.)
A nie można tego zrobić po prostu na jednej tabeli user i dać pola angielski, niemiecki itp? W polach wpisywać po prostu true albo false.
0 głosów
odpowiedź 1 marca 2019 przez pog(r)ubiony Początkujący (340 p.)
Panowie - Dziękuję za pomoc i nakierowanie!

Sposób manjaro wg mnie sprawdzi się, jeżeli bym chciał zrobić to już, na teraz od razu, i myślę, że będzie fajnie działać przy mniejszej bazie. Zresztą w zasadzie do tej bazy będzie mało połączeń więc na razie nie obawiam się o to, czy baza/serwer wytrzyma. Dlatego na ten moment zrobię małą próbną bazę wg manjaro. Dodam z 10 popularnych języków na zasadzie prawda/fałsz. Manjaro - bazę robię phpMyadmin ale nie jestem pewien czy pola języków (prawda/fałsz) ustawić na typ danych BOOLEAN czy INT ? Czy też w tych polach włączać porównywanie napisów utf 8 ?

Z kolei pomysł Greeenone - dzięki serdecznie za grafikę, że chciało Ci się to rozrysować -  myślę, że jest lepszy jeżeli będę chciał rozwijać bazę/produkt i będzie dużo osób  w bazie. W zasadzie już teraz pojawiają się osoby, które deklarują np. język japoński, węgierski, serbski - i myślę, zeby w dalszej perspektywie jednak zrobić osobną tabelę na języki + pivot. Dzięki za wskazanie typów danych, nie wiedziałem, że to ma być jako VARCHAR.

Czy polecacie coś do wysyłania maili z poziomu PHP ? Dopiero się uczę i jestem zupełnie zielony. Na razie ćwiczę na localhscie (xammp) ale mam wykupiony hosting z obsługą PHP i wkrótce będę to tam testował.

Doczytałem, że nie jest zalecane używanie funkcji mail PHP tylko lepiej jakiś zewnętrzny moduł/komponent żeby to robił (Composer? nie zrozumiałem dobrze).

Udanego piątku!
komentarz 1 marca 2019 przez manjaro Nałogowiec (37,390 p.)
No tak oczywiście boolean dla wartości true/false albo int dla 1/0. Podałem ten sposób bo faktycznie jest prosty, a nie podejrzewam że robisz konkurencję dla facebooka ;)

Pozdrawiam

Podobne pytania

+2 głosów
1 odpowiedź 95 wizyt
0 głosów
1 odpowiedź 224 wizyt
0 głosów
0 odpowiedzi 88 wizyt
pytanie zadane 8 kwietnia 2020 w SQL, bazy danych przez hellowo Nowicjusz (220 p.)

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...