使用“set”字段类型时需要的mysql设计提示

使用“set”字段类型时需要的mysql设计提示,mysql,Mysql,我正在启动一个新的MySQL数据库项目,其中表组织的关键字段之一是Town。一个人可以在这里选择多个城市或城镇,也可以选择整个州的任何城市或城镇。他们需要能够轻松地添加一个新城镇,并且能够轻松地移除一个城镇也将非常棒。因此,由于枚举类型需要有多个值,我认为应该设置Town的字段类型。然后,当我定义表和field Town时,我可以列举所有170个城镇。 但是,我想我还需要另一个表格,列出所有这些城市和城镇,这样我可以在他们为组织选择城市和城镇时在下拉列表中使用它 这是正确的方法吗?使用字段类型集

我正在启动一个新的MySQL数据库项目,其中表组织的关键字段之一是Town。一个人可以在这里选择多个城市或城镇,也可以选择整个州的任何城市或城镇。他们需要能够轻松地添加一个新城镇,并且能够轻松地移除一个城镇也将非常棒。因此,由于枚举类型需要有多个值,我认为应该设置Town的字段类型。然后,当我定义表和field Town时,我可以列举所有170个城镇。 但是,我想我还需要另一个表格,列出所有这些城市和城镇,这样我可以在他们为组织选择城市和城镇时在下拉列表中使用它

这是正确的方法吗?使用字段类型集和一个单独的城市/城镇表来匹配我为该字段列举的内容?我将做大量的搜索,并希望搜索优化,所以如果有更好的方式来组织这一点,我想知道

我知道如何使用concat将一个城镇添加到特定组织的现有城镇列表中,即更新组织集town=concatTown',Springfield',其中OrgID=1,效果很好。但是,如果他们已经指定了一个很长的城镇列表,并且只想删除一个,那么是否有一个等价物呢


如果经常添加和删除值,您可能不想使用城镇集合,因为每次更改都需要一个表更改。为了便于维护,我会将城镇设置为一个单独的表,并在组织和城镇之间创建一个链接表来处理它们之间的关系。正如马库斯所说,如果你使用一个集合,需要做大量的工作,如果你不必这样做,为什么要这样做呢?我不知道如何建立这种关系,尽管当一个组织可以与一个或多个城镇相关联。如何在数据库中执行此操作?