sql – 规范化“Toxi”方式真的值得吗? (3NF)
我正处于数据库设计的早期阶段,所以还没有最终结果,我正在使用“TOXI”3表设计作为我的线程,它有可选标签,但我不禁觉得加入是不是真的有必要,也许我需要依靠我的帖子表中的一个简单的标签列,我可以在其中存储类似< tag>,< secondTag>的varchar. 所以回顾一下: >是否值得在2个标签表上额外左连接的麻烦,而不是在我的posts表中只有一个标签列. 架构
样本数据
当前查询
结果 如果有标签: 最佳答案 将所有标记放在不同的记录中(标准化)意味着您可以在需要时更轻松地重命名标记并跟踪标记名称历史记录. 例如,重命名SQL Server相关标签至少三次(mssql – > sqlserver – > sql-server). 将所有标记放在一个记录中(非规范化)意味着您可以使用FULLTEXT索引索引此列,并一次搜索具有两个或更多标记的帖子:
这也是可能的,但标准化设计效率较低. (不要忘记将@ft_min_word_len调整为3个字符或更少的索引标记,以便工作) 您可以组合两种设计:存储地图表和非规范化列.但这需要更多的维护. 您还可以将规范化设计存储在数据库中,并使用您提供的查询将标记提供给Sphinx或Lucene. 这样,您可以使用MySQL进行历史挖掘,使用Sphinx进行全文标记搜索,并且不需要额外的维护. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 无法在Python中捕获MySQL IntegrityError
- MYSQL数据库MySQL数据库备份以及常用备份工具集合
- Mysql应用mysql 5.7.14 安装配置图文教程
- Mysql学习MySQL 5.6.13 解压版(zip版)安装配置方法
- Mysql实例mysql中合并两个字段的方法分享
- 插入语句中C#应用程序中的MySql ODBC 5.1驱动程序的内存分配
- Mysql应用全面了解MySql中的事务
- Mysql必读MySQL-MMM安装指南(Multi-Master Replication Man
- Mysql入门MySQL5.6安装图解(windows7/8_64位)
- Mysql入门innodb存储引擎修改表共享空间为独立空间