Kezdőoldal » Számítástechnika » Programozás » Tinder szerű alkalmazásnak...

Tinder szerű alkalmazásnak adatbázis dizájn?

Figyelt kérdés
Dolgozom egy kis hobbi projekten, ahol az emberek a Tinderhez hasonlóan matchelhetnének egymással, de az adatbázis igazi kihívás. Tegyük fel, van egy táblám a usereknek, gondolom szükségem van külön a matcheknek is. Tudom, hogy a Tinder MongoDB, de én mindenképpen MySQL-ben szeretném az adatbázist. Milyen táblákra lenne szükségem, és milyen függvénnyel oldjam meg a matcheket?

2023. aug. 28. 12:14
1 2
 1/18 anonim ***** válasza:
100%
Dolgozm egy kis hobbi projekten.. De amint látom már a legelején elakadtál. Én magát a Tindert ilyen mélyen nem ismerem de azért ez nem egy túl bonyolult adatmodell. És valóban nem biztos, hogy egy ilyen ahol mindenki mindenkivel "match"-elhet a legjobb az SQL mert elképesztően sok rekordod lesz egy idő után.
2023. aug. 28. 12:34
Hasznos számodra ez a válasz?
 2/18 anonim ***** válasza:
95%
Szerintem nem kell adatbázisba lementeni a match-eket, mert folyamatosan változnak. A user átírja valamilyen tulajdonságát, pl hízott 10 kilót és máris másokkal meccsel. A Tinderen valószínűleg különféle tulajdonságokat rendelnek az userekhez és az alapján egy lekérdezés hozza az adatbázisból az épp aktuális matcheket. Neked azt kell tárolni, hogy az adott matchet elfogadta-e a user vagy nem.
2023. aug. 28. 12:49
Hasznos számodra ez a válasz?
 3/18 anonim ***** válasza:
2: Bocs, igen én annak a tárolására gondoltam fent, hogy "elfogadja"/"nem fogadja" ennek a tárolása nem egészen optimális SQL-ben. Mert itt a rekordszám (pont a páros elfogadás miatt) a felhasználó szám négyzete lehet, tehát pl. van 10 000 felhasználója, akkor 100 000 000 lehetséges rekord alakulhat ki. És ezt nem igazán célszerű már MySQL-ben kezelni, mert ott már erősen kezd belassulni. Nyilván ha hobbi projekt és azt mondja megáll néhány száz felhasználónál akkor esélyes, hogy még belefér.
2023. aug. 28. 12:55
Hasznos számodra ez a válasz?
 4/18 anonim ***** válasza:
2: Bocs (az 1-es vagyok) én annak a tárolására gondoltam, hogy ki fogadja el és ki nem (ugye itt három lehetőség van, 1./ elfogadta, 2./ elutasította, 3./ nem tudjuk) a felkíánlát match-et. És miután ez mindkét oldalon előfordulhat ezért elméletileg a tábla megnőhet a felhasználó szám négyzetéig is. Tehát pl. 10 000 felhasználó esetén 100 000 000 "nyilatkozat" is lehet. Na itt a MySQL valószínűleg nem lesz hatékony. Pár száz felhasználó esetén főleg az elején amíg kevés "nyilatkozat" van akkor még akár el is bírhatja.
2023. aug. 28. 12:58
Hasznos számodra ez a válasz?
 5/18 anonim ***** válasza:
Bocs, elsőre nem jelent meg a válaszom, és még 1x beírtam.
2023. aug. 28. 12:59
Hasznos számodra ez a válasz?
 6/18 anonim ***** válasza:
35%

Itt egy pro tipp:


ChatGPT-4-nek megtudod mondani, hogy PlantUML syntaxissal írjon neked egy UML diagrammot, amit aztán egy olyan visualizerbe beraksz és látod is.


Meglepően jókat tud alkotni. Elsőre nem találja el, de ha visszmásolod neki a kreálnányát és elmondod.


Vicces, de egy itthoni banki project tervezésénél is felhasználták a chatgpt-t így. Persze a céges policy tiltja a chatgpt használatát, így nem hivatalos infó :D

2023. aug. 28. 13:19
Hasznos számodra ez a válasz?
 7/18 anonim ***** válasza:

"Elsőre nem találja el, de ha visszmásolod neki a kreálnányát és elmondod"


*elmondod neki milyen hibákat látsz és miben tér el az elvárt működéstől és meg is oldja neked.


(Bocsi ez lemaradt)

2023. aug. 28. 13:20
Hasznos számodra ez a válasz?
 8/18 anonim ***** válasza:

Én utoljára érettségin írtam SQL lekérdezést, beismerten nem vagyok kompetens a területen, de tényleg ennyire gáz a potenciális 100.000.000 rekord? Nem hangzik olyan hatalmas számnak, adatmennyiségben ez nem sok, ID hoz small int(2 byte, ezzel 60 ezer userig jó vagy), 1 bit (ami ha tényleg három állás kell teljesen elég, true/false/null) meg 1 byte. A fenti számokkal 10.000*10.000*(2+1) bit, ez nincs 300MB adat. Nem mondom, hogy pazarolni kell, vagy hogy nem lehet hatékonyabb megoldást csinálni rá, de nehéz elképzelni, hogy egy nyelv amit pontosan ilyen feladatokra csináltak ne boldogulna el vele.


#6 Azt gondolnám, hogy az AI nak kéne az én kezemet fognia, nem nekem az övét. Aztán sokan attól fsnak, hogy az AI elveszi a munkánkat. :D

2023. aug. 28. 13:49
Hasznos számodra ez a válasz?
 9/18 anonim ***** válasza:
mert pl. az SQL-ben nincs 1 bites adattípus (és ennél picit nagyobb lesz a tábla nézd meg a tárolási módszereket), meg kell hozzá jól kitalált indexelés is. Ezen kívül a tábla mérettel lassul a lekérdezés (akárhogy indexeled). A MySQL meg nem igazán arról híres, hogy gyors maradna nagyméretű táblák esetén.
2023. aug. 28. 13:55
Hasznos számodra ez a válasz?
 10/18 anonim ***** válasza:
84%

Hogy a kérdésekre is válaszoljon valaki:

Kell az user tábla, benne egy user_id-vel, meg kell egy 'likes' tábla, ami azt reprezentálja, hogy ha valaki like-ol valakit. Akkor van match, ha két user like-olja egymást.


Valahogy így:

[link]

2023. aug. 28. 16:53
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!