MySql表设计具有可变数量的列

时间:2016-12-26 09:46:24

标签: mysql database-design

看看这个场景:parses收集网站上的所有链接并将其存储在表格中。现在,没有办法事先知道网站页面上有多少链接,因此无法准备一个包含适当列数的表格。

-------|-------|-------|-------|---------------
website| link1 | link2 | link3 | maybe100columns

当您不知道需要多少列时,解决此问题的常用方法是什么?您是否以json格式编码所有链接并将json存储在1列中?

2 个答案:

答案 0 :(得分:2)

正确的方法是基于规范化 而不是

-------|-------|-------|-------|---------------
website| link1 | link2 | link3 | mybe100columns

你应该使用一对无表情的表

------------|-------
id_website  |website

详细信息

---|------------|----
id |id_website  |link

答案 1 :(得分:1)

为什么需要为每个链接创建每列?引入关系数据库系统来解决这些类型的问题。一个简单的解决方案是为您的场景使用两个表。

在一个表格中,您将保留website列,而另一列主键应分配到website_id列。

在第二个表格中,将为主列分配一个主键link_id,然后分配给列website_id的外键,该列将在第一个表的website_id引用中最后另一列名为link

因此,通过这种方式,您将存储任何网站所需的链接。