Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 数据库模式建议_Mysql_Database Design - Fatal编程技术网

Mysql 数据库模式建议

Mysql 数据库模式建议,mysql,database-design,Mysql,Database Design,我在表user中有三个字段,每个用户最多可以保存三个位置。表的架构如下所示: UserID, name, location_1, location_2, location_3 现在的问题是我还必须保存用户最喜欢的位置,所以有两种方法 或者我添加另一列(在表user中),名为favorite\u location,它将是三个保存位置之一的值 或 我是否应该只存储位置的位置(在列favorite_location中),即2表示location_2当前是最喜欢的位置 更新: 我有一个不创建另一个表U

我在表
user
中有三个字段,每个用户最多可以保存三个位置。表的架构如下所示:

UserID, name, location_1, location_2, location_3
现在的问题是我还必须保存用户最喜欢的位置,所以有两种方法

或者我添加另一列(在表
user
中),名为
favorite\u location
,它将是三个保存位置之一的值

我是否应该只存储位置的位置(在列favorite_location中),即2表示
location_2
当前是最喜欢的位置

更新:


我有一个不创建另一个表UserLocation的限制,不管是哪种方式,您都将创建
收藏夹位置
列。因此,您可以选择存储完整的位置值或仅存储列索引。

如果不想创建另一个表,可以向“用户”表中添加一个FavoriteLocation列,该列包含位置名称。使用“fav_location”、“location_1”、“location_2”列如何。如果“fav_位置”是强制性的,则仅这3列就足够了。如果不是,则添加另一个位列“IsFavoriteDefined”。如果序列不重要,则可以有如下三列:location_1、location_2和location_3。然后,在位置_1中输入最喜欢的位置,在位置_2和位置_3中分别输入另外两个位置。这样,您就不需要添加新表或新列。