DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
Null values are allowed with uniqueness constraint. So the unique constraint on logical date in dag run is not a problem here.
Other note
I think with option 2, it might make sense to introduce another date field, run_date which would be populated for all runs. It would be the date after which the dag run should be free to be scheduled. This word is generic enough to work for both schedule-driven dags and event-driven dags. It would always mean the earliest time that the dag should run. For manually triggered e.g. it would be "right now". When the scheduler is not overloaded, it should always be close to start_time .
3. Add a partition concept, or a partition-esque concept
...