mysql - SQL 查询和字符串搜索

标签 mysql sql

我有那个数据库图 (MySQL)。每本 Book 都分配了一个 BookLanguage。每个 BookLanguage 都有两个不同的 LanguageNames(全局化目的)。而且,每本 Book 都可以有一个额外的 BookLanguage (但这不是必需的)

这就是问题所在 - 我在构建用于搜索 Books 的 SQL 查询时被困在这里,它在 BookLanguageNames 中有一些字符串。通过连接 BookLanguageBookLanguageNames 构建查询很简单,但是如何处理 AdditionalBookLanguages 呢?

enter image description here

最佳答案

如何简化数据库设计?有三个表 BookBookLanguageName(它们的结构都与你的相似),而不是 AdditionalBookLanguageBookLanguage有一个“查找表” - BookLanguage:

  1. Book - 此处保存有关书籍的所有信息。
  2. BookLanguage - 只有三列:BookID、BookLanguageID(或代码)和一个 bool 值 is_additional。 BookID 和 BookLanguageID 将是复合主键。
  3. Language - 您可以在此处保存与特定语言相关的所有信息。

在这种情况下,编写查询会更容易。

关于mysql - SQL 查询和字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270431/

相关文章:

sql - 不允许保存更改。您所做的更改要求删除并重新创建以下表格

sql - SQL Server中登录名和用户的区别

mysql - 我的 SQL 语法中的另一个错误?

sql - 如何在SQL中使用小计

sql - POSTGRES to_timestamp() 假定 UTC 字符串为本地时间

mysql - 父类(super class)型和子类型的含义

mysql - 左连接表有两个条件

mysql - 从 AWS EC2 MySQL 数据库迁移到 Azure MySQL 数据库导致性能非常差

php - 从 php 模块中显示图像

mysql - 查询mysql获取max和group by