Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL:如何最好地存储变化数据的许多小片段_Mysql_Sql - Fatal编程技术网

Mysql SQL:如何最好地存储变化数据的许多小片段

Mysql SQL:如何最好地存储变化数据的许多小片段,mysql,sql,Mysql,Sql,我正在为我的一个班级做一个项目,在这个项目中,我们得到了一个非常大的数据集,由许多新闻文章组成,这些文章被分成了单独的句子,并随机化。我们的工作基本上是将所有片段重新组合成原始新闻文章。我们得到的数据有一个特定的结构,我们可以用它来排序 我的问题是如何在数据库中存储数据。我有两个想法: 1) 为每一篇新闻文章创建一个新表,然后在处理时将适当的句子添加到该表中。我们的数据预计为几GB,因此可能有数百或数千篇文章。然而,在排序之后,将不需要那么多的查询,并且文章的后处理重组将相当简单 2) 我基本上

我正在为我的一个班级做一个项目,在这个项目中,我们得到了一个非常大的数据集,由许多新闻文章组成,这些文章被分成了单独的句子,并随机化。我们的工作基本上是将所有片段重新组合成原始新闻文章。我们得到的数据有一个特定的结构,我们可以用它来排序

我的问题是如何在数据库中存储数据。我有两个想法:

1) 为每一篇新闻文章创建一个新表,然后在处理时将适当的句子添加到该表中。我们的数据预计为几GB,因此可能有数百或数千篇文章。然而,在排序之后,将不需要那么多的查询,并且文章的后处理重组将相当简单

2) 我基本上可以在DB中创建一个大表,并使用一列作为某种类型的键来区分哪个句子指向哪个文章。然而,当我不得不将文章重新缝合在一起时,这将需要大量的查询和处理来确保一切正常,更不用说提出有效的密钥方案了

之后的项目(将基于我现在创建的框架构建)将使用博客(可以更改),而不是静态新闻文章。因此,我不仅要处理句子的排序,还要动态地删除、更改或添加新的句子


在性能、可靠性和可维护性方面,哪个选项更好?我也对任何其他更好的方法开放。

< P>你可能想考虑使用3个表,并做如下的事情:

Article
-------
(PK) ArticleID


Sentence
--------
(PK) SentenceID


ArticleSentence
---------------
(PK) ArticleSentenceID
(FK) ArticleID
(FK) SentenceID
Article句子表将用于将句子映射到文章,同时使用多对一关系。显然,您的表将根据需要有更多的列,但这是通过第三个表关联两个表的一般想法


通过这种方式,您在处理数据方面也给了自己相当大的灵活性。当然,通过将每篇文章拆分成一个单独的表格,很容易得到该文章的句子。但是如果你想把类似的文章联系起来呢?按照我前面提到的方法,您还可以查询所有具有特定句子的文章。将文章和句子保留为两个单独的表格,最终将使您的生活更加轻松。

在开始设计新的数据库架构之前,请阅读本文,以便总结一下,我有一个文章表格、一个句子表格和一个与2相关的表格,对吗?桌子的大小有限制吗?因为我希望有超过一百万个句子可以记录。@Tim一百万行就可以了。我的公司有一些有近10亿条记录的表格。你应该没事:)