2010-08-15 2101 views
6

tengo que ser capaz de almacenar algo como esto: Structure http://i33.tinypic.com/f4dwea.jpgcómo representar árboles y su contenido en MySQL?

donde el verde es un tipo template, el gris es un tipo field container, y el blanco es field. (Es decir, un campo tiene una etiqueta y texto, medio texto para simplificar, y un contenedor de campo puede almacenar otros contenedores de campo o texto, y una plantilla es un campo de nivel superior.)

Ahora, digamos I Queremos permitir a los usuarios crear cualquier cantidad de estas estructuras, pero es poco probable que sea más que digamos 10. Y, por supuesto, necesitamos poder vincular datos a esta.

Todo esto es para ser capaz de almacenar en una base de datos de una matriz asociativa que busca el anterior similares, en pseudo código:

my_template = { 
    page_info => { description => 'hello!!!' }, 
    id => 0, 
    content => { background_url => '12121.jpg', text => ... 
} 

Tener una forma fácil de agregar un campo a todos los datos utilizando la plantilla cuando la plantilla cambie (digamos, agregamos un keywords a page_info) sería una gran ventaja.

No puedo entender nada, ¡muchas gracias!

+0

posible duplicado de [MySQL tabla estructura pregunta.] (Http://stackoverflow.com/questions/3486109/mysql-table-structure-question) –

+0

@OMG Potros, no, porque eso no cubre cómo almacenar información sobre ellos, solo la estructura. –

+0

@ AaronYodaiken, ¿Has resuelto este problema? ¿Cómo? Siempre fue fácil para mí construir una estructura de árbol de tabla, pero ahora tengo un problema específico y similar. Quiero guardar en tablas db alguna estructura que se pueda definir como el objeto Ver desde el patrón MVC. por ejemplo: t_view ('id', 'path_to_file'), t_vars ('id', 'var', 'view_id'); - estas tablas están definiendo bloque de vista única con sus variables. Necesito generar una plantilla multidimensional, basada en alguna Vista, cada variable también puede Ver cada variable ... y así sucesivamente. Y una plantilla puede ampliar otra con la redefinición de algunos valores variables. – LINKeRxUA

Respuesta

6

Hay varias maneras diferentes de almacenar estructuras de datos jerárquicos (árboles) en MySQL. Por ejemplo, puede elegir:

  • lista de adyacencia
  • anidada establece
  • Ruta enumeración
  • mesa de cierre

de presentation para más detalles sobre los pros y los contras de cada uno ver a Bill Karwin.

+0

Gracias por esto. No conocía a Bill Karwin, y hay algunas gemas en sus presentaciones. – chryss

Cuestiones relacionadas