tengo una tabla solo de mesas con estos campos:
.numero de mesa
.mesero o moso
.numero de ticket
.estado de la mesa (libre,activo,por cobrar,reservado,tiene postres, etc)
usa esta tabla para hacer referencias cuando traes el ticket al frente.
por ejemplo.
. cuando la mesa esta libre, entonces puedes agregar items a esa mesa.
. cuando esta activo, puedes hacer aumentos o borrar items a esa mesa.
. cuando esta en reservado, nadie puede agregar items a menos que el administrador lo autorice, y luego se convierte en activo.
. si tiene items como postres, el mesero debe tenerlos en cuenta para no olvidar pasarlos
. el restaurante acostumbra pasar las cuentas a las mesas, cuando terminen de comer, el plano de mesas debe mostrar un color distintivo.
. una vez que la mesa tiene la cuenta, nadie puede agregar mas items.
...................
. asi mismo, debes considerar que un solo usuario puede modificar la misma mesa en el mismo momento. En ese caso procura bloquear ese numero de mesa antes de permitir que lo abra.
...................
Luego tendria una tabla de movimientos.
En esta incluye todos los campos que consideres necesarios, y un campo que determine que ese item haya sido (cobrado, cambiado, eliminado,etc)
....................
al traer el ticket de una mesa especifica, haces coincidir en la tabla de movimientos (el numero de mesa, y el numero de ticket)
con esta lista al frente puedes decidir si lo marcas cobrado ,o si necesitas aumentar mas items a la mesa.
...........................................................
esto es lo que se me ocurre ahora..... si tienes mas dudas no dudes en postearlo.