Yo sostengo que con esto es suficiente:
Código SQL:
Ver originalCategoria
ID | NOMBRE | CATEGORIA_PADRE
1 | Libro | NULL
2 | Ordenador | NULL
3 | Coche | NULL
4 | Portatil | 2
5 | Numero de paginas | 1
6 | Autor | 1
7 | Tapas duras | 1
8 | Memoria RAM | 2
9 | Marca | 2
10 | Potencia motor | 3
11 | Consumo | 3
12 | Duracion bateria | 4
13 | 1 hora | 12
14 | 2 horas | 12
15 | 4 horas | 12
16 | 6 horas | 12
Por otro lado, cuando llegas al nivel de datos de los productos, es conveniente separarlos, si en diferentes tablas según sus atributos, por cuanto los atributos que le dan identidad a un libro son demasiado diferentes de un vehúculo, una prenda de vestir, un zapato o una computadora.
En esos niveles si ya se debe hacer un trabajo más fino.
Un tip que puedo agregarte es que es relativamente innecesario indicar el tamaño de un libro o la cantidad de páginas si le pones el ISBN (codigo internacional de identificacion de publicaciones), ya que el mismo libro (digamos "Cándido o el optimismo", tienen diferentes ISBN según cada edición, tamaño de libro, cantidad de páginas, idioma, presentación, y un lago etcétera; datos que son provistos a nivel internacional.