Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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
Sql 链接不同类型的产品表_Sql_Database - Fatal编程技术网

Sql 链接不同类型的产品表

Sql 链接不同类型的产品表,sql,database,Sql,Database,我有一个问题,我正在设计一个数据库,将存储不同的产品,每个产品可能有不同的细节。 例如,它需要存储具有多个作者的书籍和具有不同类型描述的软件。 这是我目前的设计: Product_table |ID|TYPE|COMPANY| |1|1|1| attr_table |ID|NAME| |1|ISBN10| |2|ISBN13| |3|Title| |4|Author| details_table |ID|attr_id|value |1|3|Book of adventures|

我有一个问题,我正在设计一个数据库,将存储不同的产品,每个产品可能有不同的细节。 例如,它需要存储具有多个作者的书籍和具有不同类型描述的软件。 这是我目前的设计:

Product_table

|ID|TYPE|COMPANY|

|1|1|1|

attr_table

|ID|NAME|
|1|ISBN10|
|2|ISBN13|
|3|Title|
|4|Author|

details_table

|ID|attr_id|value

|1|3|Book of adventures|

Connector_table

|id|pro_id|detail_id|
|1|1|1|
因此,product表将只存储主产品id、它所属的公司和它所属的产品类型。 然后我会有一个属性表,其中列出了产品可能具有的每个属性,这将使添加新类型的产品更容易。 详细信息表将保存所有值,例如不同的作者、标题isbn10s等。 然后连接器表将连接product表和details表

我主要担心的是,details表将变得非常大,并且将存储大量不同的数据类型。 我想要的是将所有不同的类型分成表,比如ISBN表和author表

如果是这种情况,我如何将这些表链接到attr_表


任何帮助都将不胜感激。

不用麻烦了。您没有说您正在使用什么数据库,但是任何合理的数据库都能够处理details表。数据库被设计为高效地处理大型表

如果它真的很大,您可能需要考虑通过某种主题对表进行分区。


否则,只需确保在表中的id上有索引,也可能在attr_id上有索引。结构应该可以正常工作。

只是一个想法,但是您是否考虑过使用文档数据库来代替?有时事情与关系模型不太匹配。查找MongoDB或Couchbase,只需阅读一些关于它们的信息。感谢您为没有提及我使用带有php前端的mysql的数据库而道歉,您认为它可以处理细节表或连接器表吗,因为我确信它们会变得非常大?如果非常大,您指的是数百万行,那么在合理的硬件上您就可以了。