Что-то вроде дней недели сложно.PachinSV и Дастин Лэйн оба делают хорошие пункты.Если у вас есть список вещей, из которых можно выбирать, наличие таблицы кодов для перечисления вещей и таблицы пересечений, чтобы сказать, какие из них выбраны, является хорошей базовой конструкцией.
Причина, по которой дни недели являются хитрыми, заключается в том, что домен (то есть список дней) довольно мал, и домен никогда не будет расширяться.Кроме того, одним из преимуществ подхода с использованием таблиц пересечений является то, что вы можете выполнить запрос ко всему, что происходит в среду (например).Это замечательно, когда ваша таблица кодов похожа на теги категорий для статей блога, поскольку разумно задать вопрос о просмотре всего с помощью тега How-To.В случае повторения дней недели, имеет ли смысл говорить, показывать мне все, что повторяется по средам?Я так не думаю.Наверняка вы будете запрашивать даты и диапазоны дат, но дни недели и только в контексте повторения?Я не могу придумать практическую причину для этого.
Следовательно, есть аргумент, что дни недели являются атрибутами, а не независимыми объектами, поэтому наличие семибитовых флагов в вашей таблице все еще остается3NF.