gpt4 book ai didi

mysql - 我应该规范化这张表吗?

转载 作者:搜寻专家 更新时间:2023-10-30 21:44:49 25 4
gpt4 key购买 nike

我有一个表 Items,它存储从亚马逊获取的图书数据。当用户浏览该站点时,此 Amazon 数据被插入到 Items 中,因此发生的任何 INSERT 都需要高效。

这是表格:

CREATE TABLE IF NOT EXISTS `items` (
`Item_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Item_ISBN` char(13) DEFAULT NULL,
`Title` varchar(255) NOT NULL,
`Edition` varchar(20) DEFAULT NULL,
`Authors` varchar(255) DEFAULT NULL,
`Year` char(4) DEFAULT NULL,
`Publisher` varchar(50) DEFAULT NULL,
PRIMARY KEY (`Item_ID`),
UNIQUE KEY `Item_Data` (`Item_ISBN`,`Title`,`Edition`,`Authors`,`Year`,`Publisher`),
KEY `ISBN` (`Item_ISBN`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT AUTO_INCREMENT=1 ;

规范化此表可能意味着为标题、作者和出版商创建表。我这样做的担心是插入会变得太复杂。要插入单个项目,我必须:

  1. 检查 Publishers 中的 Publisher 以选择 Publisher_ID,否则将其插入并使用 mysql_insert_id() 获取 Publisher_ID。
  2. 检查 Authors 中的 Authors 以 SELECT Authors_ID,否则将其插入并使用 mysql_insert_id() 获取 Authors_ID。
  3. 检查 Titles 中的 Title 以选择 Title_ID,否则将其插入并使用 mysql_insert_id() 获取 Title_ID。
  4. 使用这些 ID 最终插入 Item(这实际上可能是重复的,所以整个过程都是浪费......)

这是否反对该表的规范化?

注意:Items 的目标不是创建一个全面的图书数据库,这样用户就会说“给我看 Publisher X 的所有图书”。 Items 表仅用于为我的用户的搜索结果缓存 Items。

最佳答案

考虑到您的目标,我绝对不会将其正常化。

关于mysql - 我应该规范化这张表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6022403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com