Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Anime databas med avancerad(?) söklogik.

Postades av 2008-07-26 23:01:41 - Jonas Sjöblom, i forum systemutveckling generellt, Tråden har 2 Kommentarer och lästs av 1359 personer

Min idé är att skapa ett system baserat på en databas över animes.

Den skulle fungera så att samtidigt som användarna använder sidan för att leta efter anime så skulle de även bidra till sidan genom att deras sökning kan användas för att precissera andras sökningar.

Det skulle alltså gå till så att besökaren får välja sina favoritanimes och baserat på dem så ska andra animes listas. Det som ska avgöra vilka animes som listas är hur andra har gjort sökningar.

Om Bertil skriver i att han gillar "Naruto", "Bleach" och "Dragon ball" så ska applikationen alltså titta i databsen vilka andra som har letat efter dessa samt vad mer än bara dom som har sökts efter i samma sökning.
Så tidigare har lisa letat på "Naruto", "Bleach", "Dragon ball" och "Death Note"
och Kalle har letat på "Naruto", "Bleach", "Death Note" och "Elfen Lied"

Då ska den alltså titta på de tidigare sökningarna och bestämma vilka som verkar ha samhörighet.
Resultatet på Bertils sökning skulle alltså bli "Death Note" först eftersom den matchade 2 gånger och sedan "Elfen Lied" som endast matchade en gång.

Det här skulle kräva väldigt mycket tanke på logiken, om endast en anime matchar de 2 sökningarna så ska ju den ha lägre prioritet än en där 3 matchar.

Vet inte om jag uttryckt mig tydligt nog nu men tanken är att personer som har många animes gemensamt kan använda det här systemet och indirekt genom andra personer hitta sådana animes som de kan tänkas gilla.

Språket skulle vara ASP.NET med en MySQL databas eftersom det är de jag känner mig mest hemma med.
Sidan ska inte kräva någon typ av inloggning men möjligtvis måste besökarens IP eller en cookie sparas för att det inte ska bli dublettsökningar i databasen. Inget större problem om det blir det men skadar ju inte att undvika.

Nu är mina frågor..
Hur skulle databasen/tabellerna byggas upp?
Är det prestandamässigt möjligt? Kommer dte behövas någon typ av superserver för att hålla igång något sådant?
Hur får man igång en sån här sak där användarnas data är en nödvändig del för att applikationen ska rulla på.
Om det kommer en ny anime är det lätt hänt att den hamnar långt bak i listan, är det kanske en bra idé att ta bort gamla sökningar?


Svara

Sv: Anime databas med avancerad(?) söklogik.

Postades av 2008-07-27 12:21:05 - Niklas Jansson

<b>Hur skulle databasen/tabellerna byggas upp?</b>
Jag tror att det bästa faktiskt är att börja med en enkel:

-AnimeSeries
Name
Id

-Persons
Id

-Preferences
PersonId
SeriesId


Det du pratar om låter snarlikt vector space model inom sökmotorprogrammering, men med en twist.

Grundprinciperna måste ju vara:
1. En person som har många favoriter har mindre betydelse än någon som har väldigt få.
2. En person som har dålig matchning har mindre betydelse än någon som har bra matchning. Det borde helt enkelt vara en procentsats som avgör matchingen.

Jag tror att du får fram det genom att använda "antalet gemensamma serier"/"totalt antal serier tillsammans", eller "antalet gemensamma"/"antalet av den andras serier".

Problemet är att detta är ganska krångliga frågor mot databasen, sannolikt antingen använd av cross-product eller någon join, och på så sätt räkna ut alla på en gång, något i stil med:

SELECT ... FROM Preferences p1, Preferences p2 WHERE (NOT p1.PersonID = p2.PersonID)

Eller

SELECT ... FROM Preferences p1 OUTER JOIN Preferences p2 ON p1.SeriesID = p2.SeriesID WHERE (NOT p1.PersonID = p2.PersonID)

Vid närmare eftertanke är det nog enklast. Då får du ut alla kombinationer du är intresserad av. Sen får du "helt enkelt" göra en group by som uppfyller en av algoritmerna ovan, kanske något i stil med:

X = SELECT * FROM Preferences p1 OUTER JOIN Preferences p2 ON p1.SeriesID = p2.SeriesID WHERE (NOT p1.PersonID = p2.PersonID)

Y = SELECT COUNT(*) as c1,p1.personid, p2.personid FROM X WHERE NOT(p1.seriesID = NULL OR p2.seriesID =NULL) GROUP BY p1.personid, p2.personid

För att få fram alla matchningar, och sen för totala gemensamma:
Z = SELECT COUNT(*) as c2, p1.personid, p2.personid FROM X GROUP BY p1.personid, p2.personid

Och sen slutlig lösning från:
SELECT c1/c2, p1.personid, p2.personid FROM Y INNER JOIN Z ON Y.p1.personid=Z.p1.personid, Y.p2.personid=Z.p2.personid

c1/c2 är då "Hur mycket bryr p1 sig om p2" och vice versa.

Sen får du ha denna som en faktor när du räknar ut de olika alternativen.

<b>>Är det prestandamässigt möjligt? Kommer dte behövas någon typ av superserver för att hålla igång något sådant?</b>
Helt klart ett stort jobb, men beroende på databas kan du ju antingen låta den cachas automatiskt, eller göra det själv vid tillfällen.

<b>>Hur får man igång en sån här sak där användarnas data är en nödvändig del för att applikationen ska rulla på.</b>
Genom att få in entusiaster som ger sig fan på att få det att funka, och genom att tillhandahålla något som får folk att vilja komma in från början.

<b>>Om det kommer en ny anime är det lätt hänt att den hamnar långt bak i listan, är det kanske en bra idé att ta bort gamla sökningar?</b>
Du kan ju ha en "nyhetsfaktor" som gör att nyheter alltid viktas högt, säg 1+k/antalet dagar sen den introducerades.
Där sätter du k till ett tal som är i storleksordningen "nu är den inte så ny längre", kanske någon månad eller så?


Svara

Sv:Anime databas med avancerad(?) söklogik.

Postades av 2008-07-28 07:44:59 - Jonas Sjöblom

Tack för det utförliga svaret! Jag har inte riktigt greppat allt du sa men kommer nog göra det om jag läser igenom det några gånger till. Det verkar inte alls så krångligt som jag hade trott att det skulle vara.

Tack igen för svaret!


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 880
27 965
271 776
648
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies