Red de conocimientos turísticos - Preguntas y respuestas turísticas - Cómo diseñar un sistema de base de datos dedicado a las redes de alquiler de coches

Cómo diseñar un sistema de base de datos dedicado a las redes de alquiler de coches

1. La empresa de alquiler de coches dispone de varias tiendas de alquiler de coches, ubicadas en diferentes zonas, con sus propios números de teléfono de alquiler de coches.

2. Cada agencia de alquiler de coches tiene varios coches para alquilar.

3. Los vehículos utilizados para arrendamiento deben registrar el número de identificación del vehículo (VIN), el tiempo de compra, la tienda, el modelo del vehículo y el estado del vehículo (preparándose para el arrendamiento, en reparación, usado para arrendamiento, inválido).

4. El precio del alquiler del vehículo viene determinado básicamente por el modelo del vehículo y el tipo de fecha (días laborables, fines de semana o festivos).

5. Los clientes deben registrarse antes de reservar un automóvil, incluido el nombre, el número de identificación, el número de licencia de conducir, el sexo, el número de teléfono móvil, el número de teléfono fijo, la dirección particular y la dirección de correo electrónico.

6. Los clientes registrados pueden reservar un coche de alquiler a través del sistema y reservar un determinado modelo de coche durante unos días (el plazo máximo de reserva es de 6 meses).

7. El formulario de alquiler de automóviles debe registrar el número de cliente, el número de vehículo, la fecha de inicio del alquiler, la fecha de finalización del alquiler, la tienda de recogida del automóvil, la tienda de devolución, la tarifa de alquiler, el monto del pago por adelantado y el estado del pedido (ingresado, Enviar reservado). , Reserva Reservada, En Uso, Devolución Devuelta, Cancelada Cancelada). Nota: Los servicios de entrega puerta a puerta y recogida puerta a puerta no están disponibles actualmente.

Para los requisitos anteriores, las tablas obvias a crear son: vehículos (Table_Car), tiendas (Table_Store), clientes (Table_Customer) y pedidos (Table_Order).

Además, el modelo de vehículo, el estado del vehículo, el tipo de fecha y el estado del pedido se crean respectivamente como cuatro tablas de enumeración: Table_CarCategory, Table_CarStatus, Table_DateType y Table_OrderStatus.

También debería haber una tabla de comparación de precios de alquiler de automóviles (Table_BasePrice), que contendrá dos claves externas que apuntan a Table_CarCategory y Table_DateType respectivamente.

Un diagrama de tabla simple es el siguiente:

Puedes adivinar el significado de la mayoría de los campos a partir de sus nombres. Hay dos puntos a tener en cuenta:

1. Este diseño tiene cuatro tablas de enumeración (tipo table_date, categoría table_car, estado de table_order, estado de table_car o puede haber muchas tablas de enumeración de este tipo en). el sistema empresarial. ¿Cuáles son las ventajas y desventajas de integrar estas tablas de enumeración en una tabla de configuración? ¿Hay otras soluciones? Puedes pensar.

2. La tabla de comparación de precios de alquiler de automóviles está diseñada como Table_BasePrice en la imagen. Su clave principal es una clave compuesta, que incluye CarCategory_ID (que indica el tipo de vehículo, como Canvee 1.6 MT), DateType_ID (que indica días laborables, fines de semana o feriados) y BasePrice_StartDate (que indica la hora en que el cliente vio el nuevo precio en la página del sistema ), donde CarCategory_ID y DateType_ID también son una clave externa. Este es un enfoque de diseño.

Existen dos enfoques de diseño alternativos:

Alternativa 1. Elimine DateType_ID en Table_BasePrice. Table_BasePrice solo almacena el precio de alquiler inicial de un determinado modelo. Agregue una columna DateType_AdjustRate en Table_DateType para almacenar proporciones mayores o iguales a 1, por ejemplo, una proporción de 1,0 para los días laborables y 1,1 para los fines de semana. El precio básico del alquiler en un día determinado es: Ratio × Precio de Alquiler Inicial.

Alternativa 2. Según la alternativa 1, elimine directamente la tabla Table_BasePrice. Coloque BasePrice_Price en Table_CarCategory (se puede cambiar el nombre a CarCategory_Price). Otras modificaciones son las mismas que la opción 1.

Estas soluciones afectarán a la flexibilidad, facilidad de uso y trazabilidad del sistema. Puede pensar y discutir los pros y los contras de estas opciones.