sql >> Databasteknik >  >> RDS >> Mysql

Bästa sättet att lagra veckohändelser i MySQL?

Här är ett enkelt sätt:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  0   0   0   1   0   0   0   14-01-2010    14-01-2033

Hur man använder:

Sätt helt enkelt en 1 på de dagar du vill köra den. Eftersom 7-dagarskalendern sannolikt inte kommer att ändras inom kort, bör den strukturen vara oföränderlig. Du kan välja valfri kombination av dagar.

För att sammanfatta:

Kör varje torsdag:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  0   0   0   1   0   0   0   14-01-2010    14-01-2033

Kör varje torsdag och måndag:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  1   0   0   1   0   0   0   14-01-2010    14-01-2033

Dessutom får du bara en rad per evenemangsschema, vilket är enklare och renare att hantera programmatiskt.

Till exempel, för att hitta alla händelser som ska köras på måndag, gör:

select * from Events where Mon = 1


  1. Behöver hjälp med att utföra en omedelbar uppdateringsfråga

  2. Naturlig sortering SQL ORDER BY

  3. Hur implementerar man bakgrunds-/asynkron skrive-bakom cachelagring i PHP?

  4. Hur man infogar dolda fältdata i databasen med php