Tabla recursiva es una solucion:
Código:
CREATE TABLE `cat_cuentas` (
`idcuenta` int(11) NOT NULL auto_increment,
`numero` varchar(100) NOT NULL default '',
`nombre` varchar(100) NOT NULL default '',
`tipo` int(11) NOT NULL default '0',
`idpadre` int(11) default NULL,
`cuenta_final` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`idcuenta`),
UNIQUE KEY `numero` (`numero`),
KEY `idpadre` (`idpadre`),
CONSTRAINT `cat_cuentas_ibfk_1` FOREIGN KEY (`idpadre`) REFERENCES `cat_cuentas` (`idcuenta`)
)
A ver si te das una idea. Esta tabla almacena un catalogo de cuentas como esta:
Código:
1 Caja y Bancos
1.1 Caja
1.1.1Caja Chica
1.2 Bancos
1.2.1 Banamex
1.2.1 Bancomer
2. Edificios
3. Cuentas por cobrar
3.1 Sr Perez
3.2 Sr Cruz
Aqui lo importante es la relacion que existe entre idcuenta y idpadre checala
saludos.