webForumDet fria alternativet

Undvika dubletter

3 svar · 1 295 visningar · startad av AG

AGMedlem sedan mars 20001 266 inlägg
#1

Har gjort ett enklare bokningssystem i PHP som även fungerar för viss bokföring.
Typ
id (int)
personal_id (int)
kund_id (int)
notering (varchar)
starttid (yyyy-mm-dd hh:mm)
sluttid (yyyy-mm-dd hh:mm)

Det jag vill undvika är att samma person av misstag kan reggas två gånger under samma tidsintervall. Dvs att ett personal_id kan endast förekomma inom ett tidsintervall. Detta för att minimera andelen fel som kan uppstå.

Finns det något sätt att med keys eller liknande kolla detta.

Jag kör MySQL och all programmering runt är gjort i PHP.

Tack

Andreas

plekanecMedlem sedan dec. 201027 inlägg
#2

Check constraint skulle fungera i MSSQL. Vet inte om det finns i MySQL?
Annars kan du göra en trigger som kollar.

AGMedlem sedan mars 20001 266 inlägg
#3

Trigger verkar vara ett alternativ. Men hur skulle en sådan "fråga" fungera alltså hur skulle jag skapa upp det i tabellen.
En viktig sak är också att jag måste kunna uppdatera kund_id - ifall man "råkar" lägga in på fel företag utan att Triggern säger ifrån.

GunnarDMedlem sedan juni 20014 290 inlägg
#4

Varför inte bara göra en koll mot databasen innan du lägger in data.

* select personal_id where tid>starttid and tid<sluttid
* om ovanstående inte returnerar något, gör en insert annars så har användaren redan bokat.

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)