Mysql 服务和服务包的数据库结构

Mysql 服务和服务包的数据库结构,mysql,database,Mysql,Database,我正在建立一个简单的购物车,我们打算出售个人服务,以及组合服务包。其想法是创建包含多种服务的服务包,并为购买服务的客户提供一些折扣 目前,我将服务和包存储在不同的表中 服务平台的数据库结构如下所示: **Table: tbl_services** Service_id - Auto Int P Key Service_name varchar 150 Service_descr text Service_price Double 服务套餐表 Pack_id - auto int, pKey

我正在建立一个简单的购物车,我们打算出售个人服务,以及组合服务包。其想法是创建包含多种服务的服务包,并为购买服务的客户提供一些折扣

目前,我将服务和包存储在不同的表中 服务平台的数据库结构如下所示:

**Table: tbl_services**
Service_id - Auto Int P Key
Service_name varchar 150
Service_descr text
Service_price Double
服务套餐表

Pack_id  - auto int, pKey
Pack_name varchar 255
Pack_descr  text
Pack_price  double
表:服务包详细信息(用于存储已添加到特定包中的单个服务)

最初的想法是销售套餐,而不是个人服务。 但现在,我们的想法是让客户有灵活性,让他们购买个人服务,或套餐,或两者兼而有之

如果我们允许,或者希望购物车以这种方式运行,那么 你认为这是一个好的数据库结构吗

或者我应该将服务和包都存储在一个表中以便于查询和操作? 喜欢 服务表的新表结构:

*Table: tbl_service_packs
Service_id - Auto Int P Key
Service_name varchar 150
Service_descr text
Service_price Double
Service_type – Small Int (1- Service, 2- package)
Service_items varchar 255( to store comma separated Service_Ids for services that are part of this package)* 
通过这种方式,所有服务、包将位于一个表中,因此在处理购物车中的项目时更容易查询

请帮我弄清楚数据库结构 提前谢谢


PS:这是我的第一个问题,所以请问我是否需要解释什么。

这实际上是一个设计考虑。这些数据总是一起使用吗?您是否愿意处理重复数据?您的系统性能是否至关重要?您是否有资源问题(包括带宽)?您可以处理多少非规范化?服务和服务包的单独表是正确的解决方案。然而,向客户销售服务和服务包是错误的。即使当客户想要购买单一服务时,您也会将其存储为他购买了由一项服务组成的包。也就是说,从Db scheme端,只有包表与客户端表连接。谢谢回复。1.正如我所说的,我们希望数据处理更灵活、更方便。当客户来我们这里时,我们可能会提供两种选择,例如服务1@50美元,服务30美元或套餐,这两种服务都需要70美元。2.没有其他限制,例如带宽。性能显然至关重要。当客户来我们这里时,我们可以提供两种选择,例如服务1美元50,服务2美元30或组合套餐-这两种服务都需要70美元。你可以提供你想要的一切。但当一位客户同意你以70美元的价格卖给他一个包含服务1和服务2的包。如果这样的软件包不存在,那么您可以先创建它,然后再出售。@Akina感谢您的回复。很明显,我们的想法是销售套餐,这样我们可以赚更多的钱,客户可以享受套餐折扣。但有时,我们也必须销售个人服务。如果我们只加入套餐表,那么我们如何处理单个服务的订购/销售?谢谢
*Table: tbl_service_packs
Service_id - Auto Int P Key
Service_name varchar 150
Service_descr text
Service_price Double
Service_type – Small Int (1- Service, 2- package)
Service_items varchar 255( to store comma separated Service_Ids for services that are part of this package)*