如何在数据库中建模?

Art*_*iro 9 database tags normalization tag-cloud

我有一个现有的webapp,并希望添加标记功能,以便用户可以标记现有对象.问题是我应该为每个对象添加一个标记列吗?或者我应该将其标准化并使用标记表,其中每个对象都有一组标记?我倾向于后者,因为它感觉更干净,更容易报告并且更容易创建标签云.但既然我知道这已经解决了1000次我想问,看看我是否遗漏了什么?

OMG*_*ies 6

您是否预见到用户需要将多个标签与对象关联?

如果没有,请将TAG_ID fk添加到OBJECT表.否则,您总共需要三个表来正确建模多对多关系:

宾语

  • OBJECT_ID(pk)

OBJECT_TAG_XREF

  • OBJECT_ID(pk,fk到OBJECT)
  • TAG_ID(pk,fk到TAG)

标签

  • TAG_ID(pk)