Estou usando o mysql com o framework php Yii. Ao fazer a modelagem de dados me deparei com algumas dúvidas. Tenho uma tabela para detalhes do usuário como esta.
CREATE TABLE IF NOT EXISTS `tbl_users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firstname` varchar(80) NOT NULL DEFAULT '',
`lastname` varchar(80) NOT NULL DEFAULT '',
`gender` varchar(6) NOT NULL DEFAULT '',
`email` varchar(45) NOT NULL DEFAULT '',
`company_name` varchar(80) NOT NULL DEFAULT '',
`contact_no` varchar(45) NOT NULL DEFAULT '',
`address` varchar(120) NOT NULL DEFAULT '',
`state` varchar(45) NOT NULL DEFAULT '',
`country` varchar(45) NOT NULL DEFAULT '',
`created_by` int(11) DEFAULT NULL,
`updated_by` int(11) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=98 ;
Aqui meu problema é que eu quero que o estado,país seja assim para que eu possa usar os campos comostate/city
`state/city` varchar(45) NOT NULL DEFAULT '',
`state/province` varchar(45) NOT NULL DEFAULT '',
Então é seguro usar assim ou eu tenho que usar apenas uma opção lá? Qualquer ajuda e sugestões serão altamente apreciáveis.
Atualmente no MySQL 5.5+ você pode usar tais caracteres em ambos os nomes de esquema e nomes de tabela, apenas tenha em mente que existem bugs conhecidos causados por tais caracteres sendo confundidos com caminhos de diretório na base de código interna do MySQL.
Até o MySQL 5.5 você acharia isso impossível. A partir deste link : (da documentação antiga, que não está mais disponível)
De uma forma ou de outra, usar barras invertidas é apenas uma prática ruim, eu recomendo que você use um caractere de sublinhado.