工程7 分鐘閱讀
One event, many identities
Why attendee, registration, and ticket need to stay separate records — and what breaks when they are merged.
文 Tomas LindqvistPlatform
The most common modelling mistake in event software is treating a person and a ticket as the same object. It works until the first transfer.
Three records, three lifecycles
An attendee is a person, and persists across events. A registration is that person’s participation in one event. A ticket is the entitlement that was purchased, which may be transferred, refunded, or reassigned without the person changing.
Merge them, and a name change on a transferred ticket rewrites history for a different person’s past attendance.
Where it shows up
Transfers, group purchases, and repeat attendees across a series are the three cases that expose a merged model. Each one is common enough that the merge fails within a season.
Keeping the records separate costs one join and saves a migration.