webForumDet fria alternativet

Undvika dubletter

Databaser & SQLur Databashanterare & SQL

3 svar · 1 295 visningar · startad av AG

Medlem sedan mars 20001 266 inlägg
Frågan#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

Medlem 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.

Medlem 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.

Medlem 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.

271 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
139 ms — hämta forumlista (db)
129 ms — hämta statistik (db)
137 ms — hämta tråd, inlägg och bilagor (db)