如何在数据库中存储多个项目.困惑于数据库结构

Raj*_*kar 0 mysql database schema database-design

我有一个选择框,用户将选择他们旅行的城市列表.之后,管理员将搜索具有特定城市的用户.

我对数据库的结构非常困惑.共有300个城市.为每个城市创建列并使用布尔值打开或关闭它,看起来是一种幼稚的技术.任何人帮助我PLZ

Aar*_*ght 5

不知道为什么你有标记的这个mysqlsql-server-你同时使用?

无论如何,这是一个标准的多对多映射:

表:用户

  • UserID(int,PK)
  • UserName(varchar(50),not null)

表:城市

  • CityID(int,PK)
  • CityName(varchar(50),not null)

表:UserCity

  • AssociationID(int,PK)
  • UserID(int,FK User,not null)
  • CityID(int,FK City,not null)

要检索给定用户的所有城市:

SELECT c.CityID, c.CityName
FROM User u
INNER JOIN UserCity uc
    ON uc.UserID = u.UserID
INNER JOIN City c
    ON c.CityID = uc.CityID
WHERE u.UserID = @UserID
Run Code Online (Sandbox Code Playgroud)