gpt4 book ai didi

php - mysql性能和安全相关问题

转载 作者:行者123 更新时间:2023-11-29 07:42:17 24 4
gpt4 key购买 nike

当我使用语言实现product_description表时遇到一些问题。

我的过程是,我有默认表product_description_en来存储描述,当客户端安装新语言(中文)时,php脚本将创建新表product_des_ch,然后将所有默认数据(来自英语表)放入新表中创建表。然后客户端可以更新。我的问题是

  1. 我们在安装新语言时动态创建表是否存在安全问题

2.如果我们对所有语言使用同一个表(记录约为 500,000 条),那么是否存在任何性能问题3.存储大量记录的最佳方式是什么,我的意思是同一个表还是单独的表。

谢谢氮氧化物

更新:这是英语表和日本表的示例产品描述表结构。您对此表有何看法(我们将所有记录存储在同一个表中,当客户端为不同语言插入新记录时仅插入新记录),有什么反馈吗?

+---------------------------------------------------------------------------+
| product_id | name | desc | meta_name | meta_desc | key_words | lan_code |
+---------------------------------------------------------------------------+
| 1 | A | D| m1 | m_d1 | k1 | en |
+---------------------------------------------------------------------------+
| 1 | A | D| m2 | m_d2 | k2 | jp |
+---------------------------------------------------------------------------+

最佳答案

基本的 RDBMS 设计智慧会给任何动态改变表结构的东西设置一个巨大的危险信号。关系数据库非常灵活,足以处理几乎任何情况,而无需采取此类措施。

对于结构,我的建议是创建一个 Languages 表来存储可用的语言,然后创建一个 Phrases 表来存储所有可用的短语。然后使用 Translations 表提供这些短语到可用语言的实际翻译。可能看起来像这样:

Language
+----+---------+
| id | name |
+----+---------+
| 1 | English |
| 2 | Chinese |
+----+---------+

Phrase
+----+-------------+
| id | label |
+----+-------------+
| 1 | header |
| 2 | description |
+----+-------------+

Translations
+-------------+-----------+-----------------+
| language_id | phrase_id | translation |
+-------------+-----------+-----------------+
| 1 | 1 | Header |
| 1 | 2 | Description |
| 2 | 1 | 头 |
| 2 | 2 | 描述 |
+-------------+-----------+-----------------+

对于中小型数据库,即使使用默认数据库配置也不应该出现任何性能问题。如果您的数据库规模很大(以 TB 为单位计算数据库大小),您可以通过多种方式优化数据库,以保持可接受的性能水平。

关于php - mysql性能和安全相关问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28711460/

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