Se eu tiver uma tabela assim:
my_table
=======================
id date some_data
Faz algum sentido puxar date
para a sua própria mesa? O date
campo usaria o date
tipo de dados. Então agora ficaria assim:
my_table
==========================
id date_id some_data
dates
==========
id date
De acordo com o MySQL, date
tipo de dados = 3 bytes. O date_id
precisaria ser um máximo de MEDIUMINT
(3 bytes) para obter o mesmo resultado. Um normal INT
ou BIGINT
excede os requisitos de armazenamento de um DATE
tipo.
Uma desvantagem de uma tabela separada é que as consultas seriam mais complicadas porque estou entrando em outra tabela.
Existem outras ramificações que precisam ser levadas em consideração quanto a dividir ou não o date
campo em sua própria tabela? Minha reação instintiva é que não vale a pena fazer isso, a menos que você esteja lidando com um pequeno conjunto de datas (pequeno o suficiente para usar TINYINT
ou SMALLINT
).