我认为我有一个逻辑导向的问题。我正在重构我的网站上的数据库,使其对最终用户有用,它看起来像这样:我有一个可用的七个产品的列表,每个产品的ID为1-7。我有一个提交表,其中包含一个自动递增的Id属性(SubmissionId),用于标识每个唯一的提交,其中可能包含多个产品(例如,新客户可能会提交与EPL,Crime Fidelity和Fiduciary的添加产品表单) ,但不是多余的产品(不能有EPL和另一个EPL)。我需要能够以可行的方式将产品ID链接到每个提交,以便我可以在用户调用提交时查看它以显示相关信息(基本上就像查看他们的购物车一样)。显然,当最终计数中不一定有7位数时,创建一个包含所有可能的1-7次迭代的表是不可行的(因为否则只会有49位),所以我想知道是否有办法合并将每个产品id转换为字符串或类似的东西,将该数字插入Submission表的ProductId列,然后使用SELECT WHERE LIKE语句调用与该特定SubmissionId关联的所有产品?
例如,用户提交一个新表单,数据库自动将列SubmissionId的值增加为8.然后他们添加四个产品; EPL,Crime Fidelity,Fiduciary和Professional D& O.这些产品在Product表的“ProductId”列中的值分别为1,3,4和6。要插入到Submission表中的集合ProductId值将是1346,并且显示与SubmissionId 8相关联的数据的逻辑将具有循环通过该ProductId的switch case语句,以查看它是否包含每个数字1-7使用SELECT WHERE ProductId是LIKE(数字),然后显示相关案例中的数据。如何将“1346”值插入Submission表的ProductId列?
答案 0 :(得分:1)
您应该添加一个将Product与Submission链接的表,例如。表S2P {Id,ProductId,SubmissionId}(我无法想出更好的名字)。这是实现多对多关系的标准方法。
点击此链接:http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php或google获取更多信息。