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

标签 mysql arrays

我计划为每个 url 存储站点地图和相关数据

想知道哪个更好:

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

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

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

解释:

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

  2. 表格将包含列:id、用户、网站、url

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

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

最佳答案

一个好的设计应该是这样的:

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

User (PK) |  Website (FK)

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

Website (PK) | URL

PK = 主键
FK = 外键

我认为这与您的选项 3 类似,除了或分成两个表,以便不在每一行中冗余存储网站属于哪个用户。

您可能还想创建一个 Websites 表,只存储网站与 id 的关联:

Website Id (PK) | URL    

在此表中存储网站主要 URL 的位置,例如“stackoverflow.com”,然后将相对 URL 存储在(网站 -> URL)关系表中,例如“questions/8116983/which-is-better-using- mysql 中的多行表或数组。

那么您也可以在表 1 和表 2 中使用网站 ID 而不是网站。

关于mysql - 哪个更好,在 mysql 中使用多行、表或数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8116983/

相关文章:

php - mysql/php 如果值为空则忽略设置

mysql - 什么是 SQL 错误 : 5, SQLState : HY000? 以及什么可能导致此错误?

javascript - 使 Array.filter() 返回 false 而不是 true 的项目

arrays - Ember.js - 将数组绑定(bind)到表/网格中的单选按钮,当用户选择网格/表中的单选按钮时更新相同的数组

PHP PDO 查询,具有从数组中获取的多个条件

php - 使用 php 在 bootstrap 中动态形成列

sql - 按间隔分组

java - 查看电路是否断路的函数(二维数组)

arrays - 如何提取 JSONB 数组的元素?

ruby-on-rails - 返回数组中匹配元素的列表索引