我是否可以使用多个表中的多个变量创建需要计算其变量的视图?

时间:2016-06-22 19:48:43

标签: php mysql

所以我正在尝试学习如何使用数据库和php但是我遇到了一些麻烦,我是否可以查看我需要的内容,或者我是否只需要将所有变量都放到php函数中在那里计算。

这是我为项目决定的数据库结构。 (前提是为卡车租赁公司设置数据库和网页,如果有帮助的话。)

Vehicles(vehicleId, size, gas)

Price(size, price)

Customer(customerId, firstname, lastname, streetaddress, city, state, zipcode, email, company)

Rental(rentId, customerId, vehicleId, startdate, enddate, tank(0=full positive=number of gallons missing from tank), damage(0=none))

因此,我尝试创建的此示例中的视图将计算每次租借的总费用,以便于展示。

总费用为price of specific vehicle size * number of days rented (if returned on same day is 1) + (tank * 5) + damage

该视图还包含rentalId和customerId,可以轻松搜索总花费。

我可以在mysql中执行此操作,还是需要在php中完成?

1 个答案:

答案 0 :(得分:2)

您可以使用所需的所有信息创建视图:

CREATE VIEW myView AS
    SELECT rentId, customerId,
            (price * 
                (CASE DATEDIFF(startdate, enddate)
                      WHEN 0 THEN 1
                      ELSE DATEDIFF(startdate, enddate)
                 ) + (tank * 5) + damage) as totalCost
      FROM Rental r
      JOIN Vehicles v
        ON v.vehicleId = r.vehicleId
      JOIN Price p
        ON p.size = v.size

您可能需要根据业务规则审核CASE DATEDIFF...以调整时间间隔。