¿Cómo modelar descuentos en artículos en una base de datos?

Estoy creando un sitio de comercio electrónico y me gustaría ofrecer descuentos en ciertos artículos por un tiempo limitado.

Mi tabla de productos (MySQL) tiene este aspecto:

Product
    - productId
    - Name
    - Weight
    - Price (price as on the cover of the item)

¿Debo hacer otra mesa para ofertas:

Deals
 - dealID
 - productID (Foreign Key)
 - discount (fractional value: percentage)
 - description

Para recuperar elementos:

q1: Buscar todos los productos en productos con productID = todos los productIDs en la tabla de ofertas q2: Actualice el precio con descuento de la tabla de ofertas q3: devuelve todos los productos

Hay una mejor manera de hacer esto ? Además, ¿cómo manejo el caso de acuerdo existente por un tiempo limitado?

EDIT: me gustaría mostrar cuánto descuento estamos ofreciendo por producto. Por lo tanto, necesito dos valores por producto, el precio original y el precio con descuento para la duración dada.

Publiqué un seguimiento de la solución propuesta por crontabaqu

Respuestas a la pregunta(8)

Su respuesta a la pregunta