Site Tools


rules:charset

Khác biệt

Đây là những khác biệt giữa phiên bạn được chọn và phiên bản hiện tại của trang này.

Liên kết để xem bản so sánh này

Next revision
Previous revision
rules:charset [2015/10/31 07:31]
hongoctrien được tạo ra
rules:charset [2015/11/14 03:28] (hiện tại)
vuthao
Dòng 3: Dòng 3:
 NukeViet 4 cũng đã thay đổi hệ thống Cơ sở dữ liệu (CSDL) để làm việc tốt với chaset này. Dưới đây là một số lưu ý khi bạn làm việc với CSDL. NukeViet 4 cũng đã thay đổi hệ thống Cơ sở dữ liệu (CSDL) để làm việc tốt với chaset này. Dưới đây là một số lưu ý khi bạn làm việc với CSDL.
  
-Các trường ​có đánh dấu **UNIQUE KEY** độ dài của chỗi không được vượt quá **1000 / 4 = 255** ký tự.+**1. Trường ​hợp 1:** ''​UNIQUE KEY alias (alias)''​
  
-1. Trường hợp 1''​UNIQUE KEY alias (alias)''​+Ví dụ, có bảng  dữ liệu:
  
-Nguyên nhân mỗi kỹ tự sẽ sử dụng 4 byte (utf8_general_ci chỉ sử dụng 3 byte )+<code php> 
 +nv4_vi_news_categories ​( 
 +  id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,​ 
 +  title varchar(250) NOT NULL, 
 +  alias varchar(250) NOT NULL, 
 +  description mediumtext NOT NULL, 
 +  status tinyint(1) unsigned NOT NULL DEFAULT '​0',​ 
 +  PRIMARY KEY (id), 
 +  UNIQUE KEY alias (alias) 
 +ENGINE=MyISAM";​ 
 +</​code>​
  
-2Trường hợp 2: ''​UNIQUE KEY alias_catid(aliascatid)''​+Độ dài của chỗi không được vượt quá **1000 / 4 = 250** ký tựNguyên nhân mỗi kỹ tự sẽ sử dụng 4 byte (utf8_general_ci chỉ sử dụng 3 byte ). Do đó, trường hợp nàytrường **alias** chỉ được **sử dụng tối đa 250 ký tự.**
  
-Nếu catid sử dụng smallint(5) thì alias lúc này được sử dụng tối đa (1000- 5/4 = 249.6875 (làm tròn 249) ký tự.+**2. Trường hợp 2:** ''​UNIQUE KEY alias_catid(alias, catid)''​
  
-3. Trường hợp 3: ''​UNIQUE KEY alias1_alias2(alias1alias2)''​+<code php> 
 +nv4_vi_news_rows ( 
 +  id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,​ 
 +  catid smallint(5) unsigned NOT NULL, 
 +  title varchar(249) NOT NULL, 
 +  alias varchar(249) NOT NULL, 
 +  description mediumtext NOT NULL, 
 +  status tinyint(1) unsigned NOT NULL DEFAULT ​'0'
 +  PRIMARY KEY (id), 
 +  ​UNIQUE KEY alias_catid(aliascatid) 
 +) ENGINE=MyISAM";​ 
 +</​code>​
  
-Nếu alias1 sử dụng varchar(50) thì alias2 lúc này được sử dụng tối đa **(1000 - 50*4) /4 = 200** ký tự.+Nếu trường **catid** sử dụng **smallint(5)** thì **alias** lúc này được **sử dụng tối đa (1000- 5) /4 = 249.6875 (làm tròn 249) ký tự.** Do đó, alias trong trường hợp này chỉ được sử dung tối đa 249 ký tự. 
 + 
 +**3. Trường hợp 3:** ''​UNIQUE KEY alias1_alias2(alias1,​ alias2)''​ 
 + 
 +<code php> 
 +nv4_vi_news_rows ( 
 +  id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,​ 
 +  catid smallint(5) unsigned NOT NULL, 
 +  title varchar(200) NOT NULL, 
 +  alias1 varchar(50) NOT NULL, 
 +  alias2 varchar(200) NOT NULL, 
 +  description mediumtext NOT NULL, 
 +  status tinyint(1) unsigned NOT NULL DEFAULT '​0',​ 
 +  PRIMARY KEY (id), 
 +  UNIQUE alias1_alias2(alias1,​ alias2) 
 +) ENGINE=MyISAM";​ 
 +</​code>​ 
 + 
 +Nếu alias1 sử dụng ​**varchar(50)** thì **alias2** lúc này được sử dụng tối đa **(1000 - 50*4) /4 = 200** ký tự. Alias2 trong trường hợp này được sử dụng tối đa 200 ký tự.
  
 Dựa trên những trường hợp này, trong quá trình thiết kế CSDL, nếu bảng có sử dụng các ràng buộc UNIQUE hãy sử dụng những hướng dẫn bên trên để code của bạn họat động tốt với các website NukeViet sử dụng Utf8mb4. Dựa trên những trường hợp này, trong quá trình thiết kế CSDL, nếu bảng có sử dụng các ràng buộc UNIQUE hãy sử dụng những hướng dẫn bên trên để code của bạn họat động tốt với các website NukeViet sử dụng Utf8mb4.
 +
 +Tham khảo:
 +https://​mathiasbynens.be/​notes/​mysql-utf8mb4
rules/charset.1446276679.txt.gz · Thời điểm thay đổi: 2015/10/31 07:31 do hongoctrien