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

Zbiór zadań z informatyki CKE. Błąd zadaniu 102?

Object Storage Arubacloud
0 głosów
511 wizyt
pytanie zadane 8 marca 2021 w Rozwój zawodowy, nauka, praca przez AutoPlay Nowicjusz (240 p.)

Witam to znowu ja. Przychodzę z kolejną zagwozdką. Otóż w zadaniu 102 mamy tabelę użytkownicy z relacją wiele użytkowników do wielu użytkowników. Z mojej wiedzy na temat relacji taką buduję się w sposób, że jeżeli mamy użytkownika A(id = 1) i B(id = 2) to musimy zapisać dwa rekordy 1;2 i 2;1 w tabeli która określa ich relacji user_id_1; user_id_2. Jeżeli się mylę to proszę mnie naprostować.

W komentarzu do zadań mamy zdanie:

"Najwcześniejszą zawartą znajomość można zrobić podobnie, napotykamy tutaj na dodatkową trudność — czy połączyć pole ID_uzytkownika z polem Znajomy_1 czy Znajomy_2. Przy każdym z tych połączeń dostaniemy inną najwcześniejszą datę — jedna będzie odpowiadała pierwszej znajomości, w której użytkownik występuje jako Znajomy_1, druga zaś występowaniu jako Znajomy_2. Potrzebujemy więc obu tych dat, a szukać będziemy tych użytkowników, którzy dodali zdjęcie wcześniej niż wypada którakolwiek z nich."

Co oznacza że w tym zadaniu jest losowość i istnieje dla każdej takiej relacji tylko jeden rekord. Czy taka praktyka nie jest błędna?

Oczywiście jedyną rzeczą którą musiałem ja dodać to w relacji "or" i sprawdzić czy id_uzytkownika nie występuję również w drugiej kolumnie. Jednak moim głównym pytaniem jest czy jest to poprawne ogólnie czy taki sposób tworzenia relacji nie jest błędny? 

1 odpowiedź

+1 głos
odpowiedź 8 marca 2021 przez KopfSzmercen Bywalec (2,870 p.)
W tym zadaniu nie ma innego wyjścia. Musisz sprawdzić zarówno Znajomy_1 i Znajomy_2. Ja sobie to tłumaczę tak- możesz figurować w rekordzie kiedy to Ty kogoś zaprosisz i stajecie się znajomymi albo ktoś inny Cię zaprosi i jest ta sama sytuacja. Chyba robienie dwóch rekordów dla każdej zawartej znajomości nie miało by sensu, bo jeśli Tomek i Kasia zawarli znajomość trzeba by było zapisać osobno Tomka i datę oraz Kasię i datę. Robiąc jeden wiersz dla obu zmniejsza się liczba wszystkich wierszy o połowę. Czyli Tomek zaprasza Kasię w dniu 11.02.2021 i Tomek jest jako Znajomy_1 a Kasia jako Znajomy_2, ale Tomek został już wcześniej zaproszony przez Przemka, więc dla Tomka wcześniejsza data będzie z tego wiersza gdzie Tomek jest jako Znajomy_2. Nie wiem czy dokładnie o to Ci chodziło i czy Cię dobrze zrozumiałem :)
komentarz 8 marca 2021 przez AutoPlay Nowicjusz (240 p.)

Zgadzam się w tym zadaniu nie ma innego wyjścia. I na maturze będę musiał, jeżeli pojawi się takie zadanie i nie będzie powiedziane wprost jak relacja została utworzona, sprawdzić sobie rekordy jak wyglądają. Dzięki za odpowiedź. Ale jeżeli chodzi o sam sposób tworzenia takich relacji w normalnych sytuacjach to znalazłem coś takiego

   User                
Id    Name          
1     Taher         
2     Deepak        

Relationship              
Id     StartDate           
1      2010-08-23

UserRelationship
RelationshipId UserId
1                1
1                2

Utworzenie relacji w ten sposób chyba jest najlepszym rozwiązaniem co myślisz?

https://stackoverflow.com/questions/3550093/how-to-represent-symmetric-many-to-many-relationship

https://softwareengineering.stackexchange.com/questions/260974/rdbms-mysql-logic-question-how-to-join-multiple-friends

https://www.dataversity.net/beware-symmetric-relationships/#

 

Podobne pytania

0 głosów
1 odpowiedź 488 wizyt
0 głosów
1 odpowiedź 1,114 wizyt
+1 głos
2 odpowiedzi 1,164 wizyt
pytanie zadane 14 lutego 2020 w Python przez MartinLenki Nowicjusz (130 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...