0

我目前正在为 Rails 应用程序制作数据库。该模式涉及三个模型:照片、对象和标签。照片和对象都需要“可标记”。

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

Rails 提供了一种多态关联,这导致标签与 Photo 和 Object 都具有 belongs_to 关系;但是它不允许标签同时属于两者

可以通过“标签到照片”和“标签到对象”两个独立的 HABTM 关系来解决这个问题。

我想知道是否有更有效的方法来实现这一目标;或者如果我从错误的方向解决问题?

4

1 回答 1

0

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

使用一组标签来说明每件事可能没有意义。我可以想像“1024x768”和“用Olympus-camera 拍摄”之类的标签在你想对照片说些什么时会很有用,但如果你想对一个物体说些话,就不是很有用了。

假设我使用像“蓝色”这样的标签来指代照片和对象。{photo_id, "blue"} 和 {object_id, "blue"} 意思一样吗?我认为不会。

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

于 2011-05-08T03:09:15.967 回答