我正在尝试为构建的数据库设计我的表结构。该数据库将有三个单独的表格,并跟踪城市人口10年。每年之后,将为数据库中的每个城市添加人口数字。到目前为止,我是如何布置我的三个表格的:
城市(city_id,city_name,city_abbrv)
年(year_id,year)
统计信息(year_id,city_id,人口)
我担心我的Stats表中没有唯一标识符。有10个城市,10个参赛作品的年份数据相同。输入多年数据后,city_id将被重用。在我对这个网站的研究中,我已经读过,每个表都有一个唯一的ID不是必需的,但是我用来学习数据库设计的书(虽然简短)从未提到这是可以的。我想知道设计数据库的最佳方法,该数据库按日/周/月/年计划接收同一组事物的数据条目。我应该在我的Stats表中添加unique_id列吗?或者这会是一个浪费的专栏?谢谢你的帮助!
答案 0 :(得分:2)
首先,您需要将每个表的列ID设为primary key。
主键用于唯一标识表行。主键不能为NULL,因为NULL不是值。所以基本上这些列是唯一的。
问题:为什么你需要表中的主键?
答案:
附注:您可能需要熟悉索引列,请参阅advantages of indexing。
Cities (id, city_name, city_abbrv) //with id as primary key
Year (id, year) //with id as primary key
Stats (id, year_id, city_id, population) //with id as primary key
//And year_id and city_id as foregin key connected by their respective ids
如果您还是MYSQL的初学者,请参阅W3school tutorial for SQL primary keys。