IBM Informix Dynamic Server, хотя он не предназначен для немедленного использования, поддерживает тип:
DATETIME YEAR TO MONTH
Здесь хранится именно то, что вы хотите - год и месяц. Это имеет свое применение. Семейство типов DATETIME включает в себя множество других типов, которые иногда используются - и некоторые из них имеют предельную полезность, каноническим примером является DATETIME MONTH TO MINUTE. (Недостатком типа являются подробные нотации, необходимые для манипулирования им, но есть много операций, которые можно выполнить с любым или всеми типами DATETIME.)
Во многих СУБД вы можете наложить ограничения на столбцы, поэтому, если вы используете двухколонный подход, вы наложите ограничение на CHECK(month_column BETWEEN 1 AND 12)
на столбец, чтобы пользователь не поместил недопустимое значение в таблицу. , Вы можете даже наложить ограничение на столбец года.
Кроме того, некоторые СУБД позволяют вам создавать пользовательские типы, и тип год-месяц довольно прост. Конечно, детали зависят от СУБД.