我很难把一件物品和课堂正确地联系起来。
例如,我有一个商业目录网站,根据他们提供的产品/服务显示不同公司的概况。例如,LG公司生产智能手机、电视、搅拌机等。
我希望公司相应地出现在每个类别上,并且每个父类别显示它持有电子公司( 243 )有243家生产电子产品的公司的公司数量。
假设我有:
1. Electronics (243)
- Computers (14)
- Smartphones (8) // one of the 8 is LG
- TVs (10) // one of the 10 is LG
2. Kitchen tools (120)
- Blenders (4)
- etc.我希望父类显示. 独一无二的总数.里面的公司。如果LG公司生产电视和智能手机,那么母公司就会将一家公司计算两次,从而提供错误的信息。用户可能会认为在这个类别中有2家公司,而只有一家。
我怎样才能避免重复?
发布于 2016-10-29 19:16:56
如果可以跨子类别检索每个公司,那么在迭代它们时,只需在一个集合结构中积累它们。那些已经被发现的将从结构中被丢弃。当完成时,问结构它的基数是什么(计数或长度)。
这种想法在许多语言中都得到了支持。你没有列出你的,但如果它还没有以某种形式存在的话,我会很惊讶。如果您发现您必须自己实现这个想法,那么这个想法已经有了很好的记录。
有些语言并不会自动向所有对象(查看java)提供所需的散列。如果您为此构造了自己的对象,请确保已经处理好了。但是,您很可能可以使用即使是java提供的带有散列的字符串。
至于它看上去不对,只需解释一下你给他们看的是什么:
部门(独特公司)
发布于 2016-10-29 20:04:40
您的数据模型应表示公司和类别(节点)之间的直接关系。
然后,您需要构建这种关系的传递闭包:
您可以遵循两种实际的实现方法:
为了达到你想要的目标,你只需要在每一个类别的关闭集合中计算公司。
这里的许多文章都是关于节点级别的图或树中的传递闭包(也就是说,闭包包含在树中一个或多个移动到的所有节点)。您需要对其进行调整,将其放入闭包中,而不是节点本身,而是连接到每个节点的公司。
https://softwareengineering.stackexchange.com/questions/334895
复制相似问题