Php 设计一个MySQL数据库,我应该彻底重新考虑吗?

Php 设计一个MySQL数据库,我应该彻底重新考虑吗?,php,mysql,database,schema,Php,Mysql,Database,Schema,我必须设计一个以商业信息为中心的系统。例如,我会有一些表格是“所有者”、“区域”、“业务类别”、“业务类型”、“业务”、“报价”、“活动”等 我决定将每个业务的信息分组到“业务”表下 “业务”表示例: [业务] 身份证件 名称 描述 GPS\u坐标 面积 所有者 类别 业务类型ID 现在我担心的是,尽管我的大多数业务都有公共字段,但其中一些需要额外的字段(例如,住宿可能需要价格范围或房间类型)以及与其他表的特定链接 例如,如果我有一个住宿类型的业务,那么我们

我必须设计一个以商业信息为中心的系统。例如,我会有一些表格是“所有者”、“区域”、“业务类别”、“业务类型”、“业务”、“报价”、“活动”等

我决定将每个业务的信息分组到“业务”表下

“业务”表示例:

[业务]
  • 身份证件
  • 名称
  • 描述
  • GPS\u坐标
  • 面积
  • 所有者
  • 类别
  • 业务类型ID

现在我担心的是,尽管我的大多数业务都有公共字段,但其中一些需要额外的字段(例如,住宿可能需要价格范围或房间类型)以及与其他表的特定链接

例如,如果我有一个住宿类型的业务,那么我们需要将其链接到另一个表,以容纳例如空缺

“空缺”表示例:

[空缺]

  • 身份证
  • 商人
  • 头衔
  • 描述
  • 日期
我应该为每种业务类型创建单独的表吗

如果我这样做了,那么如果我决定将每个单独的业务表与“Offers”表链接(因为每个业务都可能有offer),我将需要有多个外键引用每个单独的表

“报价”表示例:

[报价]


  • 身份证件
  • 标题
  • 描述
  • 创建日期
  • 有效期自即日起
  • 有效碘酸盐
  • 商人

哪种方法最合适

 "Owner", "Area", "Business Category", "Business Type", "Business(Name)", "Offers", "Events"
除了“Events”和“Offers”之外,它们似乎应该是BusinessInfo表中的各个列。在“业务信息”表中,包括一个业务ID,并将该业务ID作为列包含在其他表中,以便在必要时加入它们。我的2美分


由于这个问题的模糊性,我建议阅读Codd博士关于规范化(Google it)的观点——这将有助于引导数据库,使其对您和您的开发人员有益。HTHs谢谢//P

我建议您创建两个表,而不是为每个业务类别创建单独的表。一个保存json格式中每个业务的常规字段,另一个保存特定字段。因此,您不必担心任何业务有多少特定字段,只需将它们存储在json格式中即可。


希望有此帮助:)

更好地编辑问题,您可以为每个表以及要在表之间链接的公共字段提供一些示例。因此,例如,我应该使用BusinessID作为外键将“空缺”表与“业务”表链接,尽管并非所有业务都来自“业务”表将使用“空缺”表吗?(因为只有住宿处才会使用它)。是的,因为那张桌子不必与每个企业ID匹配。但你确实需要所有企业都在同一张桌子上。然后,您可以在带有
业务ID
的空缺表中说,
空缺金额
——您只需在选择时将其加入到业务ID上的业务信息表中,就可以得到一家酒店及其空缺金额,你不必为珠宝店设置空置量,因为珠宝店的特定桌子可能在其他地方。如果您愿意,您可以使用外键。您认为我应该应用相同的逻辑,以便有单独的表,其中包含链接到每个business类型的额外字段吗?例如,当我们有餐馆生意时,最好知道当天的菜单或菜肴。提前谢谢,我建议你乱搞SQL Fiddle,我在我的答案中编辑了一个,已经为你准备好了。我要睡觉了谢谢你的回复,我在某个时候考虑过这个问题,但我更想看看是否有一种更面向数据库的方法来做这件事,而不是在以后以编程方式处理数据。另外一种方法是不使用sql。