Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou trabalhando numa área administrativa e o cliente quer ter categorias com níveis infinitos.
Eu sei fazer isso, a minha duvida/problema é, visto que o sistema é multi língua, qual a melhor forma para guardar as categorias, ter multi língua e ter as categorias numa certa ordem ?
Por exemplo, uma lista de categorias em português e em inglês não convêm ter a mesma apresentação.
Em ingles:
T-Shirts
-- Blue
-- Yellow
-- White
Em português:
T-Shirts
-- Amarelo
-- Azul
-- Branco
Dá para entender ?
A forma que eu tenho é que as categorias ficam sempre com a mesma ordem.
Eu estou a usar o método "Adjacency List" com duas queries ( sim duas, uma para obter as categorias e a outra para obter as traduções )
Estas são as tabelas:
CREATE TABLE IF NOT EXISTS `categories` (
`categoryID` int(8) NOT NULL AUTO_INCREMENT,
`parentID` int(8) DEFAULT NULL,
`order` int(8) DEFAULT NULL,
`level` int(8) NOT NULL,
PRIMARY KEY (`categoryID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `categories_description` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`categoryID` int(8) NOT NULL,
`languageID` varchar(8) NOT NULL,
`name` varchar(100) NOT NULL,
`seo_url` varchar(50) NOT NULL,
`description` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
O que voces acham ? Ter duas tabelas ou ter tudo numa só ? Porque como disse o que pretendo é ter:
- Níveis "infinitos" ;
- Multi língua ;
- Ordenação das categorias por língua ;
Os dois primeiros da lista eu já tenho, falta é o último, estou com duvidas em como deixar a tabela e como usar.. Eu pretendo também usar o mínimo de consultas à base de dados.
Carregando comentários...