• 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?

42 Warsaw Coding Academy
0 głosów
714 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ź 686 wizyt
0 głosów
1 odpowiedź 1,408 wizyt
+1 głos
2 odpowiedzi 1,609 wizyt
pytanie zadane 14 lutego 2020 w Python przez MartinLenki Nowicjusz (130 p.)

93,383 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,744 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...