数据库分裂;多个表

时间:2010-05-26 07:52:05

标签: mysql database database-design search

我正在编写分类广告网络应用。

为此构建数据库的最佳方法是什么? 由于具有高重复性,在数据库中为每个城市设置一个单独的表会更快(在搜索/索引方面)吗?

或者可以为每个城市设置一个表(它会有很多行......)。

分类广告表包含id,user_id,city_name,category,[description和detail fields]。

2 个答案:

答案 0 :(得分:0)

我不是为每个城市创建一个单独的表,而是创建以下表格:

Advert
Category
City
User

广告将具有类别,城市和用户的外键。它还将包含有关该项目的详细信息。

城市将拥有一个ID和所有必要的城市。该ID将是广告表的外键。

类别与具有类别详细信息的城市相同。

用户将拥有该用户的ID和详细信息。该ID将是广告表的外键。

答案 1 :(得分:0)

您应该将表格中的元素分解为4个表格。

第一个表是一个城市表,它有city_id和city_name。此表需要city_name,city_id上的唯一索引以及city_id上的主索引。

第二个表是一个类别表,它有category_id和category。此表需要类别category_id的唯一索引,以及category_id的主索引。

第三个表(用户表)将具有user_id,用户标识。

第四个表(广告表)将包含ad_id,title,description和date_inserted。 City_id,category_id和user_id将是广告表的外键,