小编kol*_*nep的帖子

如何组织数据库进行翻译、性能?

我正在为一个国际网站做一个新项目。任务是提供 16 种语言版本。

在数据库结构上,我想知道这两种方法之间是否有任何性能优势或劣势。什么是首选,为什么?

方法#1

每个翻译项目一行

方法#2

每个项目每种语言一行

database-design table

6
推荐指数
1
解决办法
266
查看次数

外键设置为级联但无法更新 - 为什么?

正如其他地方所提到的,我对 SQL 和数据库还很陌生。现在弄脏我的手并尝试所有不同的可能性。

我有一台运行 MySQL 的服务器并设置了下表进行测试:

字段类型归类属性 Null 默认额外
id mediumint(8) UNSIGNED 否 无 AUTO_INCREMENT
域 varchar(255) utf8_unicode_ci 否 无
status enum('...') utf8_unicode_ci 否 无
Replaced_by mediumint(8) UNSIGNED 是 NULL

这个想法是有一个对电子邮件有效的域列表,例如“gmail.com”和“hotmail.com”。现在,如果某个域被识别为与另一个域重复(例如“googlemail.com”到“gmail.com”),则状态列会指示这一点,而“replaced_by”列则为要使用的主域提供 ID。

此外,如果域被识别为无效(例如“gymail.com”而不是“gmail.com”),则数据库可以存储此信息,并且通过 status 和 replace_by 脚本可以建议正确的域。

虽然 ID 是该表的主键,但我想使用 ON DELETE RESTRICT 和 ON UPDATE CASCASE 测试replaced_by 列上的外键。以便replaced_by 列与主ID 保持同步。

但不知何故,当我尝试更新数据时,出现以下错误。为什么?

#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`test`.`domains`, CONSTRAINT `domains_ibfk_1` FOREIGN KEY (`replaced_by`) REFERENCES `domains` (`id`) ON UPDATE CASCADE)
Run Code Online (Sandbox Code Playgroud)

编辑 - …

mysql foreign-key cascade

5
推荐指数
1
解决办法
3756
查看次数

“搅动”是什么意思?

我在这篇博文中看到了以下句子:

了解您的数据 - 这有助于您在数据类型/可空性方面做出正确的决定,流失有助于实现长期维护目标(和初始维护计划)

我无法弄清楚“流失”是什么意思。这是什么?我只发现很多文章都在谈论“流失”而没有说明它是什么。

terminology

4
推荐指数
1
解决办法
4354
查看次数

我可以告诉 MySQL 缓存什么吗?

很直接的问题:

假设我有一个我知道经常使用的特定查询,我可以告诉 MySQL 始终“自动”缓存它吗……即,一旦缓存的查询结果被刷新,mysqld立即再次运行该查询,以便为缓存数据做好准备下一个用户?

或者反过来:我可以告诉 MySQL 不缓存特定查询吗?其他缓存选项呢,不一定与查询相关?

我在网上搜索了这个,但找不到任何相关的东西。

mysql cache query-cache

3
推荐指数
1
解决办法
1462
查看次数