哪个更好,在mysql中使用多个行,表或数组

时间:2011-11-14 03:28:37

标签: mysql arrays

我计划按网址存储包含相关数据的站点地图

想知道哪个更好:

  1. 为每个用户/网站创建新表

  2. 对于每个网站,将所有网址(包含其数据或单独的列)保存为1行数组

  3. 将每个网址保存为单独的行,主网站为标识符

  4. 说明:

    1. 每个用户都有自己的表,所有网址都在自己的行中

    2. 表格将包含以下列:id,user,website,urls

    3. 对于同一网站的所有网址,它会将它们保存为该特定网站和用户旁边的数组

      1. 相同的列,但每个站点地图将创建许多行,每行1个网址

2 个答案:

答案 0 :(得分:2)

好的设计看起来像这样:

表1(用户 - >网站一对多关系):

User (PK) |  Website (FK)

表2(网站 - >网址一对多关系):

Website (PK) | URL

PK =主键
FK =外键

我认为这类似于你的选项3,除了或分成两个表,不能冗余地存储每个网站所属的用户。

您还可能希望创建一个网站表,该表只存储将网站关联到ID:

Website Id (PK) | URL    

您在此表中存储网站的主要网址,例如“stackoverflow.com,然后将相对网址存储在(网站 - >网址)关系表中,例如”questions / 8116983 / which-is-better-using -multiple-行桌-或阵列式-MySQL的。

然后您将使用表1和表2中的网站ID,而不是网站。

答案 1 :(得分:0)

您不希望为每个用户创建新表。把它全部放在一张桌子里。