Avatar billede KongKurs Juniormester
17. januar 2023 - 08:53 Der er 1 kommentar og
1 løsning

Timestamp + (int)id som primærnøgle?

Hej :)

Hvis jeg ville lave en auktion, så er jeg jo ikke interesseret i, at 2 brugere kan afgive bud med samme tidspunkt - hvordan løser jeg dette smartest? Jeg tænkte, at jeg kunne lave en auktionstabel med en sammensat primærnøgle af (int) Id + (timestamp) BudTidspunkt - hvad siger panelet?

Hvis det har relevans, så har jeg tænkt mig at bruge Entity Framework Core.

Tak :)
Avatar billede arne_v Ekspert
17. januar 2023 - 15:03 #1
Primærnøgler er hvad der identificerer en række. Og den kan ikke indeholde duplikater.

Hvis du bruger en sammensat primærnøgle af budid+budtidspunkt så tillader du flere forekomster af samme budtidspunkt bare med forskellig budid.

Hvis du bruger en sammensat primærnøgle af genstandid+budtidspunkt så opnår du hvad du vil.

Men generelt er sammensatte primærnøgle besværelige at arbejde med. Og det er nok endnu meee besværligt i et ORM.

Jeg ville vælge:
- et budid som primærnøgle
- lave et unikt indeks på (genstandid,budtidspunkt) for at sikre mod duplikater

Det sidste laves bare i databasen og applikations koden skal bare håndtere fejl situationen - formentligt ved at prøve igen.
Avatar billede KongKurs Juniormester
17. januar 2023 - 15:34 #2
arne_v> Tusind tak for din tid :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester