WoWDeliveryApp / deliveryApp

0 stars 0 forks source link

Maquetar e Implementar DB #1

Open v1siond opened 7 years ago

v1siond commented 7 years ago

From @v1siond on January 19, 2017 14:33

La DB es la base del proyecto, es lo que va a crear el enlace front-end backend, por lo que debe ser lo primero en hacerse junto con los diseños; No es necesario tener TODA la DB lista antes de empezar a programar, pero si las tablas principales para los procesos básicos como registrar, cargar y mostrar clientes, deliverys y empresas.

Originalmente pensamos en las siguientes tablas básicas:

Copied from original issue: loldlm1/AppDelivery#1

v1siond commented 7 years ago

From @loldlm1 on January 20, 2017 4:13

Version 1 para el modelado de la Base de Datos DeliveryApp:

     User model
# - Name : string
# - Email : string
# - Password : string
# - Api_token : string
# - Address : string
# - Role : integer / La verdad no se si esto sea necesario, un usuario puede trabajar y tambien comprar cierto? 

User has many Companies
User has many Orders
User has many Deliveries, through Orders

     Company model
# - Name : string
# - Address : string
# - Restaurant_type : string
# - Description : string

Company belongs to User
Company has many Menus
Company has many Orders
Company has many Deliveries, through Orders

     Menu model
# - Name : string
# - Price : integer
# - Description : string
# - Image : file 
# - Time : integer? 

Menu belongs to Order
Menu belongs to Company

     Delivery model
# - Accepted : boolean
# - delivered : boolean
# - refused : boolean
# - description : string

Delivery belongs to Order

     Order model 
# - invoice : integer / Seria necesaria un ID especial para la orden no? 

Order has one Delivery
Delivery belongs to Company
Delivery belongs to User
Order has many Menus

Esto funcionaria de esta manera:

Cualquier cosa puede cambiar, si desean añadir un campo faltante o aportar ideas para el mejor funcionamiento de la DB estaria genial.

v1siond commented 7 years ago

User model

 Role : integer 

si es necesario, ya que el rol define las notificaciones que le llegan.

Company model

 Company belongs to User

no estoy seguro de esta relación, tal vez es porque veo al usuario y a la compañía como registros diferentes, donde sería una relación de m to n?

Menu model

 Price : integer

cambiemos esto a float, la mayoría de los precios no son exactos y aunque lo fueran, siempre se toma en cuenta la propina y demás en los cálculos.

 Time : integer? 

definamos esta date_time y le asignamos current_time_stamp para no tener que preocuparnos por verificar formatos de fecha.

Todo lo demás me parece bien :D

loldlm1 commented 7 years ago

User model

Company model

Menu model

v1siond commented 7 years ago

User model

Company Model

Menu model

loldlm1 commented 7 years ago

Perfecto, quedamos asi entonces con el modelado, sin cambios para el Company Model, el Menu Model con un DateTime y el User Model con ID_worker y ID_customer. Por los momentos esta es la version final del comienzo del proyecto, luego se le añadiran las cosas que hagan falta sobre la marcha :)