MySql中分组记录的最佳/正确方式(不是“分组依据”)

时间:2014-02-11 22:54:19

标签: mysql database-design grouping

我有一张桌子会有一堆股票编号和其他一些信息。我需要能够创建库存编号组,例如产品123A,456B和789C都属于同一组。每个库存号在表中都有自己的记录。只要我能确保将项目分组并且组号是唯一的,我就不在乎它是如何完成的。实现这一目标的最佳方法是什么?

我可以通过几种方式来实现这一目标,但我不确定最好的方法是什么,或者是否存在隐藏的缺点:

1)我可以有一个单独的表,其中一个自动增量列负责生成组ID,然后在生成后将ID添加到库存号表中,但这样就浪费了。

2)从股票编号表中选择max groupId并添加一个是否可以获得新的组ID?

3)我不能在库存编号表中使用groupId,并使用具有GroupID列和StockNumberId列的单独表来执行此操作。我怎样才能让groupId这样做呢?

您不必回复这三个人。指出哪种方式是最合适的方式,任何关于实施或陷阱的说明都会有所帮助。如果有更好的方式我没有无数请赐教。谢谢。

1 个答案:

答案 0 :(得分:1)

如果您只需要为每个股票设置groupId,并且每个股票属于一个且只有一个组,那么解决方案(2)就可以正常工作。

我还会在groupId列上创建一个索引,以便轻松检索属于同一组的股票,以及更有效地获取MAX(groupId)。

如果我还要存储组信息,我会使用解决方案(1),例如groupName等。

解决方案(3)更倾向于股票和组之间的多对多关系,其中您描述的表位于两者之间。但在你的情况下,这不是一个好的解决方案。

相关问题