如何建立价格为

时间:2015-05-18 11:19:33

标签: mysql database

我目前正在使用PHP和MYSQL构建一个界面以及我所有的沙龙服务,一切都很好,直到我不得不添加我的打蜡服务:

在谈论打蜡时,你可以将这些组合在一起:

Lips      
Chin      
Face      
Underarms      
Arms      
Eyebrows      
None of the above            

也是其中之一:

Half Leg      
Full Leg      
No Legs  

其中一个:

Small Bikini      
Big Bikini      
Brasilian   
No Bikini  

所以,我正在考虑做二元的第一部分,直到我发现第一部分我有128个组合,加上下一组(腿)的3个不同的变化,以及比基尼区域的4个以上。 ..这总共有2048种可能的组合??所以这意味着我将需要用2048种不同的描述,价格和服务代码填充数据库(最重要的一栏)

所以,当我知道我在这里做错了(关于方法)时,我需要你的帮助才能知道从BD的角度来看这是怎么做的。毕竟我只需要一个服务代码,以便将来区分每个服务与其他服务。

如果这是真正做到这一点的方式,你用什么或用什么来生成数据的2000多行?

由于

1 个答案:

答案 0 :(得分:1)

如果您不使用软件,您会怎么做?如果客户来了,请问,如眉毛,手臂和全腿....

你会说眉毛是3美元,手臂是6美元,全腿是10美元吗?

如果是这样,您可以为自己提供的每项特定服务创建数据库行,并允许您的客户选择任何产品组合。

这涉及客户端与服务表之间的多对多关系。在像MySQL这样的RDMS中,您需要一个client表,一个service表和一个client_service表。其中第三个包含数字对,client_idservice_id,也许是日期。如果你想知道某个客户昨天有什么服务,你可以使用像这样的查询

 select cs.service_time, c.name, s.service
   from client c
   join client_service cs ON c. client_id = cs.client_id
   join service ON cs.service_id = s.service_id
               AND DATE(cs.service_time) = CURDATE() - INTERVAL 1 DAY
  where c.name = 'Jane'

client_service表的要点是允许您将多个客户端与每个服务关联,并为每个客户端关联多个服务。这是一个比你提到的组合更好的软件设计选择,它很快会超过你客户的头发,嗯,头。

此类表的用户界面将显示您提供的服务列表(服务表中的行),每个服务表旁边都有一个复选框。

当您在每个客户端等待时,您将检查您提供的服务。然后,您的软件将在您的client_service表中为列表上的每个检查创建一行。

如果您的service表包含每项服务的价格,您可以按如下方式检索这些价格。

 select DATE(cs.service_time), c.name, s.service, SUM(s.price) AS price
   from client c
   join client_service cs ON c. client_id = cs.client_id
   join service ON cs.service_id = s.service_id
               AND DATE(cs.service_time) = CURDATE() - INTERVAL 1 DAY
  where c.name = 'Jane'
  group by c.name, DATE(cs.service_time), s.service WITH ROLLUP