Mysql数据库设计/选择

时间:2015-09-04 15:05:44

标签: php mysql codeigniter database-design

情景:

我的任务是在表单上添加一个新字段,称为帐号。当用户点击提交时,它会将相应的数据提交给相应的表格......这并不重要。

目前,涉及的表格为3:客户,订单和帐户。

表结构是:

  • 客户 - > customer_id(PK),...
  • 订单 - > order_id(PK),customer_id(FK),...
  • 帐户 - > order_id(PK),account_number,...

如您所见,客户可以拥有多个订单,每个订单只能有一个帐户。

尽管在表结构中我添加了PK和FK,但数据库引擎实际上是MyISAM,它不支持事务和关系。为了在表之间添加“关系”,之前的开发人员决定添加适当的PK和FK来“伪造”表之间的关系。

请注意:我没有创建数据库和表格的任何部分;它按原样交给我。

业务逻辑是客户只能拥有一个帐户。

据我所知,表格的映射方式,客户有多个帐户。

如果没有重新设计表格,看起来我没有选择。

这是我在没有重新设计表格时的想法:

  • 创建一个SQL脚本来清理和更新帐户中的帐号,以便每个帐户对于特定客户具有相同的帐号...即使客户有多个订单。
  • 在可以插入帐号的网络应用中的任何地方,我必须检查客户是否有帐号。如果是这样,然后返回一条消息,说明客户已经拥有一个帐号...可能选择帐号或用新帐号更新。如果没有,请插入。

有更好的选择吗?

顺便说一下,我正在使用MySQL和PHP / CodeIgniter。

0 个答案:

没有答案