IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
dude
Neregistrovaný
Avatar
dude:26.8.2013 16:44

čaues, potřeboval bych poradit s relačním návrhem databáze. Mám stránku kde návtěvník hodnotí profily, které jsou v tabulce Profiles(pk je IDprofilu - int), pak mám tabulku Users, která má jako pk IP adresu návštěvníka(usera).

Princip hlasování je v tom že např. pro profil 00574 může uživatel hlasovat pouze jednou. Takže potřebuju ošetřit, že když se mu vytvoří nový duel pro hlasování, tak aby tam nebylo ID pro které už hlasoval.

Př. pro uživatele s ip adresou XY se vytvoří duel s profily 0057 a 0658, poté se již pro adresu XY nesmí vytvořit žádný duel s id profilu 0057 nebo 0658

Napadlo mě vytvořit tabulku Duel, a do ní sloupec IP adresa(fk z User) a pak dva sloupce IDprofilu(fk z Profiles) a dál už nevím. Předem díky ;)

 
Odpovědět
26.8.2013 16:44
Avatar
Odpovídá na
Drahomír Hanák:26.8.2013 17:54

Nejlepší by asi bylo, vytvořit unikátní index na té tabulce Duel. Ve SQL:

CREATE UNIQUE INDEX duel_unique_idx ON duel(ip, first_profile, second_profile)

Pak lze vložit:

   IP        first_profile    second_profile
---------------------------------------------------
127.0.0.1    5                1
127.0.0.1    5                3
10.0.0.150   5                1
127.0.0.1    1                5

V tabulce duel pak ale nemůže logicky být IP primární klíč.

 
Nahoru Odpovědět
26.8.2013 17:54
Avatar
dude
Neregistrovaný
Avatar
dude:26.8.2013 18:24

díky :)

 
Nahoru Odpovědět
26.8.2013 18:24
Avatar
dude
Neregistrovaný
Avatar
dude:26.8.2013 19:24

ještě maličkost, mám pak ty jednotlivé sloupce přidat FK z tabulek Profile a Users?

 
Nahoru Odpovědět
26.8.2013 19:24
Avatar
Odpovídá na
Drahomír Hanák:26.8.2013 22:36

Určitě jo. Jinak bys totiž mohl mít nekonzistentní data. Referenční integrita, kterou definuješ právě pomocí FK, je hodně důležitým nástrojem databáze.

Jinak příště prosím použij tlačítko Odpovědět, abych si toho všiml dřív. Dostaneš tak i rychleji odpověď ;)

 
Nahoru Odpovědět
26.8.2013 22:36
Avatar
dude
Neregistrovaný
Avatar
Odpovídá na Drahomír Hanák
dude:27.8.2013 8:10

Diky a sorry :)

 
Nahoru Odpovědět
27.8.2013 8:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.