/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Vægtet random-funktion [asp.net/mssql]
Fra : Jens Gyldenkærne Cla~


Dato : 13-01-04 14:15

Jeg skal lave et annoncesystem med forskellig vægtning af de
enkelte annoncer. Hver annoncør har et fast antal point som han kan
fordele over en række forskellige kategorier. Når besøgende på
websiden søger inden for en kategori der har tilknyttet annoncer,
skal annoncemodulet så udvælge én annonce fra puljen. Udvælgelsen
skal være tilfældig, men vægtet efter pointfordelingen i
kategorien.

Annoncer og kategorier håndteres i en database (SQL-server 2000).

Jeg vil gerne have nogle bud på hvordan jeg laver en fornuftig
udvælgelse af annoncen.

Mit eget bud er at oprette en tabel som her:

tblBannerPoint
id_banner (link til bannertabellen)
id_kategori (link til kategoritabellen)

- og så oprette en post for hvert point en annonce har i en given
kategori. Herefter kan jeg finde en tilfældig post fra tabellen med
følgende kommando:

SELECT TOP 1 id_banner FROM tblBannerPoint ORDER BY newID()


"Order By newID()" fungerer fint til at vælge tilfældige poster fra
en tabel - det bruger jeg i øjeblikket til en anden annoncefunktion
hvor der ikke skal vægtes forskelligt. Jeg skal kun have én annonce
ud i det nye system, så selv om det samme id kan stå mange gange i
tabellen, giver det ikke problemer med gentagne annoncer.

Rent teknisk mener jeg derfor at ovenstående model skulle fungere -
den er bare lidt upraktisk i brug fordi jeg skal oprette et hav af
poster for hver annonce.

Det ville være langt enklere med en tabelstruktur som her:

tblBannerPoint
id_banner
id_kategori
point

- men så ved jeg ikke hvordan jeg skal udvælge posten.

Er der nogen gode ideer?

Krydspostet til dk.edb.programmering.dotnet og dk.edb.database -
opfølgning til dotnet-gruppen (ret evt. selv til databasegruppen
hvis I har rene databaseløsninger).
X-Post über 2 Gruppen, FollowUp-To dk.edb.programmering.dotnet
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

 
 
Jens Gyldenkærne Cla~ (14-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 14-01-04 10:15

Jens Gyldenkærne Clausen skrev:

> Jeg skal lave et annoncesystem med forskellig vægtning af de
> enkelte annoncer.

Lidt googling gav følgende løsning - godt nok udviklet til
asp.old/sql-server, men den kan fungere lige så fint i asp.net.

<http://www.4guysfromrolla.com/webtech/092700-1.shtml>
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste