MYSQL DB存储关键字和URL索引的最佳方法

问题描述 投票:0回答:1

这些方法中的哪一种将是存储,检索,处理和搜索存储的URL的大量索引(数百万条记录)以及关键字的最有效方法。

示例1:(使用一张桌子)

TABLE_URLs-----------------------------------------------
ID        DOMAIN        KEYWORDS
1         mysite.com    videos,photos,images
2         yoursite.com  videos,games
3         hissite.com   games,images
4         hersite.com   photos,pictures
---------------------------------------------------------

示例2:((从一个表到另一个表的一对一关系)

TABLE_URLs-----------------------------------------------
ID        DOMAIN        KEYWORDS
1         mysite.com
2         yoursite.com 
3         hissite.com
4         hersite.com
---------------------------------------------------------

TABLE_URL_KEYWORDS---------------------------------------------
ID        DOMAIN_ID     KEYWORDS
1         1             videos,photos,images
2         2             videos,games
3         3             games,images
4         4             photos,pictures
---------------------------------------------------------

示例3:(从一个表到另一表的一对一关系(使用参考表)

TABLE_URLs-----------------------------------------------
ID        DOMAIN
1         mysite.com
2         yoursite.com
3         hissite.com
4         hersite.com
---------------------------------------------------------

TABLE_URL_TO_KEYWORDS------------------------------------
ID        DOMAIN_ID     KEYWORDS_ID
1         1             1
2         2             2
3         3             3
4         4             4
---------------------------------------------------------

TABLE_KEYWORDS-------------------------------------------
ID        KEYWORDS
1         videos,photos,images
2         videos,games
3         games,images
4         photos,pictures
---------------------------------------------------------

示例4:(从URL到关键字ID的多对多关系(使用参考表)

TABLE_URLs-----------------------------------------------
ID        DOMAIN
1         mysite.com
2         yoursite.com
3         hissite.com
4         hersite.com
---------------------------------------------------------

TABLE_URL_TO_KEYWORDS------------------------------------
ID        DOMAIN_ID     KEYWORDS_ID
1         1             1
2         1             2
3         1             3
4         2             1
5         2             4
6         3             4
7         3             3
8         4             2
9         4             5
---------------------------------------------------------

TABLE_KEYWORDS-------------------------------------------
ID        KEYWORDS
1         videos
2         photos
3         images
4         games
5         pictures
---------------------------------------------------------

我的理解是示例1将占用最大的存储空间,但是搜索此数据将很快(重复保存关键字多次,但是关键字位于相关域的旁边)

而示例4将节省大量的存储空间,但搜索将花费更长的时间。 (不必存储重复的关键字,但是为每个域引用多个关键字将花费更长的时间)

有人在设计可处理大量数据的数据库时,谁能给我任何观点或想法,以寻求最佳方法?出于远见,您可能希望显示带有相关关键字的URL或搜索一个或多个关键字并显示最相关的URL

mysql database structure
1个回答
0
投票

do在url和关键字之间具有多对多关系。在关系数据库中表示这一点的规范方法是使用桥表,该桥表对应于您的问题中的示例4。

使用适当的数据结构,您将发现查询将更容易编写,并且效率很高。

© www.soinside.com 2019 - 2024. All rights reserved.