我正在尝试为业务目录规划我的表结构,其中我将有多个子类别和多个业务列表的多个父类别,所有这些都需要多对多的关系。
例如
夜晚
俱乐部和社团
公共房屋
餐馆
出租车和私人租用车辆
剧院和音乐厅
酒吧
餐馆
中国/东方
小酒馆
鱼和薯条
印度
意大利
公共房屋
海鲜
西班牙语
运输和承运人
航空租约和租赁
航空公司
Car / Van Hire Self Drive
快递和配送服务
物业/物业重新定位服务
货运服务和代理商
运输承包商
邮局和服务
重新定位服务
出租车和私人租用车辆
范希尔
如您所见,餐厅既是主要类别又是子类别。出租车和私人租车属于运输和承运人和夜间出行,在所有这些类别下,在最低级别,我将拥有商家信息。我不会允许企业提交他们自己的列表,而是根据要求自己添加。商家信息最多可包含6个类别。
我正在努力为我的数据库找到最佳的表格结构,并且非常感谢任何建议。我是php / mySQL的新手。
答案 0 :(得分:2)
你可以有一个类别表,它将包含所有可能的类别/子类别的列表,然后在你的信息表中有它,以便有一个CategoryID字段和一个SubCategoryID,你要么子类别为NULL或者相应的id。
您也可以使用映射表对其进行映射,这样您就可以拥有任意数量的类别/子类别。
Category Table ( CategoryId, CategoryName )
Business Table ( BusinessId, BusinessName )
Category Mapping Table ( BusinessId, CategoryId, IsCategory )
IsCategory将是一个BIT字段,因此您可以将业务的任意数量的类别标记为SubCategory(0)或Category(1)。
在类别映射表上,我将制作PRIMARY KEY(BusinessId,CategoryId),并分别将它们作为Business / Category表的FOREIGN KEY。