Databasdesign poster, användare och röster?

PHPportalen Forum Index » Databaser
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
xtreme



Medlem i: 5306 dagar

Status: Offline



#741104
Inlägg Skrivet: 2016-10-10 01:06      Ämne: Databasdesign poster, användare och röster? Citera

Har en tabell poster med PK PostId, en tabell med användare som har PK UserID och däremellan har jag en ”associationstabell” där det skapas en ny rad med PostID och UserId när en ny post skapas (för att jag ska kunna hitta en användares alla poster etc). Skulle väl ifs kunna lösas med att jag har UserID i Post-tabellen efersom det är en en-till-många relation.

Nu vill jag införa en enkel röstning likt stackoverflow med en siffra som indikerar totalt antal röster och användare kan rösta en gång på varje post genom att klicka på pil upp eller ner för varje post. Tänker mig då att en användare då med sin röst aningen ger -1 (röstar ner), 0 (ingen röst), +1 röstar upp).

Tänker då att man i min "associationstabell" lägger till en kolumn "Votes" som innehåller just -1, 0 eller +1 för som läggs till när en användare röstar. På så sätt kan jag lätt få fram alla röster för en post, alla röster för en användare etc.

Typ såhär
KOD:
1:
 
2:
+--------+--------+-------+
3:
| PostID | UserId | Votes |
4:
+--------+--------+-------+
5:
| 1      | 123    | +1    |
6:
+--------+--------+-------+
7:
| 2      | 123    | 0     |
8:
+--------+--------+-------+
9:
| 1      | 456    | +1    |
10:
+--------+--------+-------+
11:
 


Där man kan få fram att två användar röstat på post med Id 1 och då har den med andra ord två poäng.

Fungera detta? Bättre alternativ?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Koenigsegg



Medlem i: 3170 dagar

Status: Offline



#741105
Inlägg Skrivet: 2016-10-10 11:59      Ämne: Citera

Varför ska du spara en röst som inte finns?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
xtreme



Medlem i: 5306 dagar

Status: Offline



#741106
Inlägg Skrivet: 2016-10-10 12:36      Ämne: Citera

Koenigsegg skrev:
Varför ska du spara en röst som inte finns?


Hur ska jag lösa det då?

Såhär för att slippa null?

User.tbl
UserId
Username

Post.tbl
PostId
Message
UserId FK

Vote.tbl
UserId
PostId
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4109 dagar
Från: Tavesta
Status: Offline



#741107
Inlägg Skrivet: 2016-10-10 13:46      Ämne: Citera

Om du bara har uppröster så borde ju det fungera.
Men om du har nerröster också så måste du ha något fält i tabellen Vote.tbl som talar om ifall det är en upp- eller nerröst.
Om det inte är någon röst alls så finns helt enkelt inte den posten i tabellen Vote.tbl
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Koenigsegg



Medlem i: 3170 dagar

Status: Offline



#741109
Inlägg Skrivet: 2016-10-10 15:10      Ämne: Citera

Jag hade gjort det som ett fält, med tecken. Då har du flexibilitet och framtidssäkring. Med 2 fält "vote" och "is_up"(?) så fyller vote liksom ingen funktion.. Så länge du inte sparar dom där "0-rösterna", då..
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Databaser
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic