CREATE TABLE ativo ( idativo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, codigo VARCHAR(10), nome VARCHAR(255), PRIMARY KEY( idativo ), UNIQUE KEY codigo (codigo), INDEX ativo_keyindex1( idativo ), INDEX ativo_keyindex2( codigo ) ); CREATE TABLE cotacao ( idcotacao INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, idativo INTEGER UNSIGNED NOT NULL, fechamento FLOAT NULL, abertura FLOAT NULL, maximo FLOAT NULL, minimo FLOAT NULL, medio FLOAT NULL, negocios FLOAT NULL, quantidade FLOAT NULL, volume FLOAT NULL, data DATE NOT NULL, PRIMARY KEY ( idativo, data ), INDEX ativo_FKIndex1( idativo ), INDEX cotacao_FKIndex1( idcotacao ), INDEX cotacao_Index2( data ), FOREIGN KEY ( idativo ) REFERENCES ativo( idativo ) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE ativo_has_fundamento ( idativo INTEGER UNSIGNED NOT NULL, idfundamento INTEGER UNSIGNED NOT NULL, valor FLOAT NULL, abertura FLOAT NULL, maximo FLOAT NULL, minimo FLOAT NULL, medio FLOAT NULL, negocios FLOAT NULL, quantidade FLOAT NULL, volume FLOAT NULL, data DATE NOT NULL, PRIMARY KEY ( idativo, data ), INDEX ativo_FKIndex1( idativo ), INDEX cotacao_FKIndex1( idcotacao ), INDEX cotacao_Index2( data ), FOREIGN KEY ( idativo ) REFERENCES ativo( idativo ) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE fundamento ( idfundamento INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(255) NULL, PRIMARY KEY ( idfundamento ) );