Técnica de seguimiento de sesiones PHP y diseño y organización de bases de datos.

Estoy creando una calculadora de minería para un juego llamado "eve".
En "víspera", hay 46 tipos diferentes de mineral que se pueden extraer. En mi interfaz, tengo una lista de jugadores entre los que puede seleccionar para agregar miembros a una operación de minería y una lista de minerales que puede agregar allí.

Cada vez que hace clic en un miembro, ese miembro se resalta usando jquery toggle y se envía una solicitud ajax a un script php con ese ID de miembro que agrega ese miembro a una tabla de base de datos que contiene el op_id y los miembros que pertenecen a él. Después de esto, se consulta la tabla de operaciones de minería para los miembros que pertenecen a ella y esa lista se devuelve al usuario que crea una tabla de usuarios en la operación. A partir de ahora, cuando se consulta la base de datos para los miembros que pertenecen a la operación minera, se genera una tabla que contiene los 46 tipos de mineral junto con un cuadro de texto contenido en su propio td. En el momento de la generación de la tabla, los 46 tipos de mineral que están en la tabla tienen el estilo de display: none adjunto a ellos. Después de que se devuelva la tabla con todos sus miembros y todo el mineral que pueden extraer, el usuario puede seleccionar el tipo de mineral que utilizará. Cuando una persona hace clic en un tipo de mineral de la lista de minerales, se activa un evento de alternancia similar donde el tipo de mineral se resalta en la lista y se muestra el encabezado de la tabla correspondiente y el td que pertenece a cada usuario. Esto da la ilusión de que se agregó el tipo especificado de mineral a la operación.

Lo que me gustaría poder hacer es poder rastrear el tipo de mineral que pertenece a una operación específica, como hago un seguimiento de los miembros que pertenecen a la operación. Estoy buscando una buena manera de almacenar en la base de datos una lista de mineral que se está utilizando en una operación específica. Para que pueda, en lugar de devolver todos los tipos de mineral ocultos y sin ocultar a medida que se selecciona el mineral, simplemente agregarlos a la base de datos a medida que se seleccionan, de modo que cuando genere la tabla, no solo estoy seleccionando los miembros, sino también el mineral que ha sido seleccionado también.

La parte que no puedo entender es una buena manera de almacenar la lista de mineral que pertenece a la operación específica en la base de datos.

¿Debo almacenar la lista en una configuración de tipo CSV? o hay algún método para almacenar listas como esta en una base de datos. Eso sí, el método que estoy usando para almacenar a los usuarios probablemente podría usar el mismo método que usará el mineral, pero a partir de ahora tengo la configuración de la tabla de usuario donde el op_id está en una columna con el member_id en otra columna. Esto hace que el op_id se repita muchas veces y creo que probablemente sea incorrecto.

Gracias de antemano por cualquier sugerencia o concepto al que pueda hacer referencia para organizar un poco mejor esta base de datos.

NOTA: No estoy buscando una solución a mi problema, sino un concepto que pueda aplicar y que me ayudará a crear una mejor solución.

preguntado el 27 de agosto de 11 a las 14:08

Puede que esté malinterpretado, pero lo que deduzco es que la jerarquía es algo así como: operación minera> miembro> lista de minerales que ese miembro extraerá. ¿Eso es correcto? -

suena más como miembros -> operación minera -> lista de minerales? parece que hay varios miembros en una operación -

@Dave - Eso es a lo que me dirigía. minerales asignados a miembros que, a su vez, están asignados a operaciones. Wes - ¿Podría arrojarnos algo de luz sobre esto, por favor? -

1 Respuestas

Hmmmm ... ¿Qué tal una base de datos para rastrear las operaciones con cada columna que es la cantidad de veces que se ha usado el mineral en esa operación (y otra información relevante como el nombre de la operación y otras cosas)? XML puede ser una idea, pero depende de cuántas operaciones tenga.

¡SIN CSV!

Respondido 14 ago 14, 22:08

¿Qué hay de almacenar el mineral usado en un blob o algo que contenga la sesión mediante la cual cuando se agrega mineral a la operación, se almacena en la sesión, entonces la sesión se guarda en la base de datos? - Wes

¿Cuál es el problema de almacenar directamente en la base de datos? Puede usar la funcionalidad XML de DOMDocument para almacenar el blob, pero eso es solo agregar otra capa. Definitivamente solo estaría consultando la base de datos directamente. - Dave Lasley

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.