0

我目前正在为Rails应用程序制作数据库。该模式涉及三种模式:照片,对象和标签。照片和对象都需要“标记”。标记系统的多态性与HABTM关系

  • 标签是唯一
  • 标签可以属于一个照片或对象,或两者

的Rails提供了一个多态关联,这导致在具有两种照片和对象中的belongs_to的关系标签;然而它不允许标签属于都属于

有人可能通过为'标签照片'和'标签对象'建立两个独立的HABTM关系来解决这个问题。

我想知道是否有更高效的方法来实现这一点;或者如果我正在从错误的方向接近问题呢?

回答

0

标签是一种表达事物的方式。

使用一组标签来说明每种事物可能没有意义。我可以想象如“1024x768”和“用奥林巴斯相机拍摄”这样的标签如果您想说说某张照片时很有用,但如果您想说出关于某个物体的某些内容,那么这些标签就没有多大用处。

比方说,我使用像“蓝色”这样的标签来引用照片和对象。 {photo_id,“blue”}是否与{object_id,“blue”}相同?我不认为它确实如此。

在我看来,最有效的解决方案是使用一组标签来谈谈照片,而另一组的标签来谈谈对象。它也可能对用户更友好。

+0

我确实看到你在说什么,这是一个非常正确的观点。虽然在我们的具体情况下(如果我们要更多地了解照片和对象的真实含义),但实际上它是必要的。 – KamaKAzii 2011-05-13 06:55:48

+0

当你隐藏你在说什么,你降低下载正确答案的可能性。如果*图片*和* *的对象都不尽相同,但都没有完全不同,那么你只是标签与超关联。看到接受的答案和广泛的评论在这里:http://stackoverflow.com/questions/4969133/database-design-problem – 2011-05-13 09:23:50