/ / Panel de usuario - Confundido - ruby-on-rails, base de datos, panel

Panel de usuario - Confundido - ruby-on-rails, base de datos, panel de control

Actualmente estoy creando un sitio web donde cada usuario registrado tiene un panel de control. El panel de control tiene columnas que muestran la ubicación de su lista, de las cuales pueden tener muchas.

No estoy seguro de cómo modelar esto. Actualmente, cuando un usuario crea un elemento, la columna de estado en la lista se establece en 1. Este es el valor para la vida. Puedo establecer el valor de estado en 2,3,4 para los otros valores respectivos; sin embargo, esto causa un problema. Si el valor es dos, la lista aparecerá en el cuadro de compra, pero también aparecerá en el cuadro de compra del panel de vendedores.

Captura de pantalla del tablero

¿Cómo debo modelar esto / construirlo para asegurar que dos usuarios puedan interactuar con él de diferentes maneras?

Gracias.

Respuestas

0 para la respuesta № 1

Hay un par de formas de implementar el modelo deseado. Simplemente puede agregar dos estados diferentes para cada elemento, digamos seller_status, user_status. Si el artículo solo pertenece a un solo vendedor y un usuario, este enfoque está bien.

Alternativamente, si tiene varios usuarios que pueden poseer el mismo artículo. Debería crear una tabla de referencia única, digamos, UsersItems con belongs_to: users y belongs_to: seller. De esta manera, la lista de artículos real para el vendedor usa el estado de Item modelo y el estado de cada listado de usuario utiliza su propio estado de UsersItems.

El último enfoque es preferible si planea expandir aún más las interacciones entre cada Usuario y los Elementos, ya que puede almacenar información específica sobre su relación en sus únicos UsersItems entrada.

Sin embargo, es difícil decir si esto es exactamente lo que necesita. Porque no dijo cuáles son esos elementos y cómo se relacionan con ambos User y Seller Ni siquiera sé si son la misma tabla. Si desea desarrollar su pregunta explicando lo que espera lograr y la tabla de la base de datos, puedo ampliar más el tema.