-
Notifications
You must be signed in to change notification settings - Fork 682
/
vi-VN.json
627 lines (627 loc) · 41.2 KB
/
vi-VN.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
{
"engine": {
"mysql": "MySQL",
"tidb": "TiDB",
"postgres": "PostgreSQL",
"oracle": "Lời tiên tri",
"oceanbase": "OceanBase",
"snowflake": "Bông tuyết",
"mssql": "Máy chủ SQL",
"dm": "DM",
"mariadb": "MariaDB",
"oceanbase_oracle": "OceanBase (Oracle)",
"gaussdb": "GaussDB"
},
"category": {
"engine": "Động cơ",
"naming": "Đặt tên",
"statement": "Tuyên bố",
"table": "Bàn",
"column": "Cột",
"schema": "Lược đồ",
"database": "Cơ sở dữ liệu",
"index": "Mục lục",
"system": "Hệ thống",
"advice": "Khuyến nghị "
},
"template": {
"bb-sql-review-prod": "Mẫu nâng cao",
"bb-sql-review-prod-desc": "Chính sách toàn diện nơi bạn có được sự bảo vệ toàn diện và các biện pháp thực hành tốt nhất cho cơ sở dữ liệu của mình.",
"bb-sql-review-dev": "Mẫu cơ bản",
"bb-sql-review-dev-desc": "Phạm vi bảo hiểm cơ bản để bảo vệ cơ sở dữ liệu của bạn khỏi việc sử dụng sai mục đích thông thường.",
"bb-sql-review-sample": "Mẫu mẫu",
"bb-sql-review-sample-desc": "Mẫu tối thiểu có tính năng bảo vệ DROP và không cho phép cột có giá trị rỗng."
},
"rule": {
"engine-mysql-use-innodb": {
"title": "Thực thi công cụ lưu trữ InnoDB",
"description": "InnoDB là công cụ lưu trữ mặc định cho MySQL cung cấp hỗ trợ giao dịch. Nó cũng cung cấp hiệu suất tốt hơn cho các tình huống có tính đồng thời cao và độ trễ thấp, đồng thời hỗ trợ sao lưu và phục hồi dữ liệu trực tuyến. Đây là sự lựa chọn ưu tiên cho các doanh nghiệp OLTP. Mức độ lỗi đề xuất: Lỗi"
},
"table-require-pk": {
"title": "Thực thi việc đưa khóa chính vào bảng",
"description": "Ngoài ý nghĩa kinh doanh, khóa chính còn có lợi cho các truy vấn có tính tương tranh cao trong MySQL. Các công cụ đồng bộ hóa, so sánh và khôi phục dữ liệu khác nhau thường yêu cầu các bảng phải có khóa chính. Mức độ lỗi đề xuất: Lỗi"
},
"table-no-foreign-key": {
"title": "Cấm sử dụng các ràng buộc khóa ngoại",
"description": "Ưu điểm và nhược điểm của khóa ngoại còn gây nhiều tranh cãi. Việc sử dụng khóa ngoại có thể làm tăng đáng kể độ khó của việc thay đổi cơ sở dữ liệu, khả năng mở rộng (chẳng hạn như sharding), v.v. Và thậm chí có thể ngăn cản việc sử dụng một số công cụ. Do đó, một tùy chọn khác là triển khai các ràng buộc khóa ngoại ở lớp ứng dụng. Mức độ lỗi đề xuất: Cảnh báo"
},
"table-drop-naming-convention": {
"title": "Hạn chế định dạng đặt tên bảng cần xóa",
"description": "Ví dụ: bằng cách yêu cầu hậu tố \"_del\", nó có thể ngăn chặn việc vô tình xóa một cách hiệu quả. Mức độ lỗi đề xuất: Lỗi",
"component": {
"format": {
"title": "Định dạng tên bảng (regex)"
}
}
},
"table-disallow-partition": {
"title": "Cấm sử dụng bảng phân vùng",
"description": "Trong một số công cụ cơ sở dữ liệu, các bảng phân vùng chưa hoàn thiện và việc sử dụng cũng như bảo trì rất bất tiện. Do đó, người ta có xu hướng sử dụng các phương pháp phân vùng dữ liệu thủ công như cơ sở dữ liệu và phân chia bảng. Mức độ lỗi đề xuất: Cảnh báo"
},
"table-disallow-trigger": {
"title": "Cấm sử dụng cơ chế kích hoạt",
"description": "Cơ chế kích hoạt có thể gây ra sự không thống nhất dữ liệu và làm giảm hiệu suất. Mức độ lỗi đề xuất: Lỗi"
},
"table-no-duplicate-index": {
"title": "Cấm chỉ mục trùng lặp",
"description": "Quy tắc này cấm tạo các chỉ mục trùng lặp trên bảng. Các chỉ mục trùng lặp chiếm dung lượng lưu trữ bổ sung và có thể làm giảm hiệu suất truy vấn. Mức độ lỗi gợi ý: Cảnh báo"
},
"table-text-fields-total-length": {
"title": "Giới hạn độ dài tối đa của trường văn bản trong bảng",
"description": "Luật này giới hạn dung lượng dữ liệu mà một bảng có thể chứa, giúp ngăn chặn việc sử dụng dung lượng lưu trữ quá mức.",
"component": {
"number": {
"title": "Chiều dài tối đa"
}
}
},
"table-disallow-set-charset": {
"title": "Cấm thiết lập bảng mã trong thuộc tính của bảng",
"description": "Cài đặt charset ở cấp độ cơ sở dữ liệu được khuyến khích. Cài đặt charset ở mức độ chi tiết hơn có thể dẫn đến những phức tạp không cần thiết. Mức độ lỗi đề xuất: Lỗi."
},
"table-comment": {
"title": "quy ước bình luận",
"description": "Định cấu hình xem bảng có yêu cầu nhận xét hay không và độ dài nhận xét tối đa.",
"component": {
"required": {
"title": "Yêu cầu bình luận"
},
"maxLength": {
"title": "Chiều dài tối đa"
}
}
},
"table-disallow-ddl": {
"title": "Không cho phép DDL",
"description": "Định cấu hình bảng nào bị cấm thực thi DDL. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"list": {
"title": "Tên bảng"
}
}
},
"table-disallow-dml": {
"title": "Không cho phép DML",
"description": "Định cấu hình bảng nào bị cấm thực thi DML. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"list": {
"title": "Tên bảng"
}
}
},
"naming-table": {
"title": "Thực thi định dạng đặt tên bảng",
"description": "Định dạng mặc định là tất cả các chữ cái viết thường, phân tách bằng dấu gạch dưới giữa các từ và không dài quá 63 ký tự, chẳng hạn như \"abc\" và \"abc_def\". Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"format": {
"title": "Định dạng tên bảng (regex)"
},
"maxLength": {
"title": "Giơi hạn chiêu dai"
}
}
},
"naming-column": {
"title": "Thực thi định dạng đặt tên cột",
"description": "Định dạng mặc định là tất cả các chữ cái viết thường, được phân tách bằng dấu gạch dưới giữa các từ, dài không quá 63 ký tự, chẳng hạn như \"abc\" và \"abc_def\". Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"format": {
"title": "Định dạng tên cột (regex)"
},
"maxLength": {
"title": "Giơi hạn chiêu dai"
}
}
},
"naming-index-uk": {
"title": "Thực thi định dạng đặt tên khóa duy nhất",
"description": "Tên được phép để trống và được đặt tên theo cơ sở dữ liệu. Nếu không trống, định dạng mặc định là "uk_<table name> _<unique key column name combination> ", dài không quá 63 ký tự, chẳng hạn như "uk_my_table_id_name". Mức lỗi đề xuất: Cảnh báo",
"component": {
"format": {
"title": "Định dạng tên khóa duy nhất",
"template": {
"table": "Tên bảng",
"column_list": "Tên cột chỉ mục, được nối bởi _"
}
},
"maxLength": {
"title": "Giơi hạn chiêu dai"
}
}
},
"naming-index-pk": {
"title": "Thực thi định dạng đặt tên khóa chính",
"description": "Tên được phép để trống và được đặt tên theo cơ sở dữ liệu. Nếu không trống, định dạng mặc định là "pk_<table name> _<unique key column name combination> ", dài không quá 63 ký tự, chẳng hạn như "pk_my_table_id_name". Mức lỗi đề xuất: Cảnh báo",
"component": {
"format": {
"title": "Định dạng tên khóa chính",
"template": {
"table": "Tên bảng",
"column_list": "Tên cột chỉ mục, được nối bởi _"
}
},
"maxLength": {
"title": "Giơi hạn chiêu dai"
}
}
},
"naming-index-fk": {
"title": "Thực thi định dạng đặt tên khóa ngoại",
"description": "Tên được phép để trống và được đặt tên theo cơ sở dữ liệu. Nếu không trống, định dạng mặc định là "fk_<table name> _<unique key column name combination> ", dài không quá 63 ký tự, chẳng hạn như "fk_my_table_id_name". Mức lỗi đề xuất: Cảnh báo",
"component": {
"format": {
"title": "Định dạng tên khóa ngoài",
"template": {
"referencing_table": "Tên bảng tham chiếu",
"referencing_column": "Tên cột tham chiếu",
"referenced_table": "Tên bảng được tham chiếu",
"referenced_column": "Tên cột được tham chiếu"
}
},
"maxLength": {
"title": "Giơi hạn chiêu dai"
}
}
},
"naming-index-idx": {
"title": "Thực thi định dạng đặt tên chỉ mục",
"description": "Tên được phép để trống và được đặt tên theo cơ sở dữ liệu. Nếu không trống, định dạng mặc định là "idx_<table name> _<unique key column name combination> ", dài không quá 63 ký tự, chẳng hạn như "idx_my_table_id_name". Mức lỗi đề xuất: Cảnh báo",
"component": {
"format": {
"title": "Định dạng tên chỉ mục",
"template": {
"table": "Tên bảng",
"column_list": "Tên cột chỉ mục, được nối bởi _"
}
},
"maxLength": {
"title": "Giơi hạn chiêu dai"
}
}
},
"naming-column-auto-increment": {
"title": " Thực thi định dạng đặt tên cột tự động tăng",
"description": "Tên cột mặc định là \"ID\" và dài không quá 63 ký tự.",
"component": {
"format": {
"title": "Định dạng tên cột tự động tăng (regex)"
},
"maxLength": {
"title": "Giơi hạn chiêu dai"
}
}
},
"naming-table-no-keyword": {
"title": "Cấm sử dụng từ khóa làm tên bảng",
"description": ""
},
"naming-identifier-no-keyword": {
"title": "Cấm sử dụng từ khóa làm định danh",
"description": ""
},
"naming-identifier-case": {
"title": "Thực thi trường hợp định danh",
"description": "",
"component": {
"upper": {
"title": "Chữ hoa"
}
}
},
"column-required": {
"title": "Thực thi việc bao gồm các cột cụ thể trong một bảng",
"description": "Một số cột phổ biến rất hữu ích để bảo trì ứng dụng tốt hơn. Ví dụ: việc thêm cột \"ID\" độc lập với doanh nghiệp làm khóa chính sẽ tránh xung đột khóa chính do các thay đổi trong doanh nghiệp gây ra (chẳng hạn như sáp nhập doanh nghiệp) và trong một số trường hợp cũng có thể mang lại hiệu suất chèn dữ liệu tốt hơn. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"list": {
"title": "Tên cột bắt buộc"
}
}
},
"column-type-disallow-list": {
"title": "Cấm sử dụng các loại dữ liệu cột nhất định",
"description": "Việc lạm dụng các loại cột có thể có tác động tiêu cực nghiêm trọng đến khả năng bảo trì và hiệu suất của hệ thống. Ví dụ: sử dụng cột \"LOB\" để lưu trữ lượng lớn dữ liệu âm thanh và video có thể khiến hiệu suất cơ sở dữ liệu giảm, thời gian sao lưu và phục hồi kéo dài và các công cụ đồng bộ hóa dữ liệu không tương thích. Mức độ lỗi đề xuất: Lỗi",
"component": {
"list": {
"title": "Danh sách không cho phép"
}
}
},
"column-no-null": {
"title": "Thực thi các ràng buộc \"NOT NULL\" trên các cột",
"description": "Cột không thể có giá trị NULL."
},
"column-disallow-set-charset": {
"title": "Cấm xác định bộ ký tự trong thuộc tính cột",
"description": "Nên đặt bộ ký tự ở cấp cơ sở dữ liệu hoặc cấp bảng. Việc đặt bộ ký tự ở mức độ chi tiết hơn có thể mang lại sự phức tạp không cần thiết. Mức độ lỗi được đề xuất: Lỗi."
},
"column-disallow-change-type": {
"title": "Cấm sửa đổi loại cột",
"description": "Việc sửa đổi loại cột có thể ảnh hưởng đến hiệu suất hệ thống, khả năng bảo trì và thậm chí dẫn đến mất dữ liệu. Mức độ lỗi đề xuất: Cảnh báo"
},
"column-disallow-change": {
"title": "Cấm sử dụng câu lệnh \"THAY ĐỔI CỘT\"",
"description": "\"CHANGE COLUMN\" là cú pháp duy nhất của MySQL và có thể được sử dụng để sửa đổi tên cột và các thuộc tính khác cùng một lúc. Tuy nhiên, nó có thể khiến tên cột bị thay đổi nhầm khi sửa đổi thuộc tính. Nên vẫn sử dụng câu lệnh \"RENAME\" và \"MODIFY\" tiêu chuẩn để phân biệt giữa hai loại thay đổi. Mức độ lỗi đề xuất: Lỗi"
},
"column-disallow-changing-order": {
"title": "Cấm thay đổi thứ tự các cột trong bảng",
"description": "Việc sửa đổi thứ tự các cột có thể khiến một số ứng dụng hoặc dạng xem phụ thuộc vào thứ tự mặc định của bảng gốc tạo ra kết quả không mong muốn, chẳng hạn như \"chọn *\". Mức độ lỗi đề xuất: Cảnh báo"
},
"column-disallow-drop-in-index": {
"title": "Cấm bỏ cột trong chỉ mục",
"description": "Cấm bỏ cột trong chỉ mục. Mức độ lỗi đề xuất: Lỗi"
},
"column-set-default-for-not-null": {
"title": "Thực thi giá trị mặc định trên cột \"NOT NULL\"",
"description": "Đối với cột 'NOT NULL', nếu cột không được gán giá trị khi chèn hàng mới và cột không có giá trị mặc định thì cơ sở dữ liệu sẽ từ chối việc chèn hàng đó. Đặt giá trị mặc định cho cột mới cũng có thể đảm bảo khả năng tương thích với ứng dụng cũ. Mức độ lỗi đề xuất: Lỗi"
},
"column-auto-increment-must-integer": {
"title": "Thực thi việc sử dụng kiểu dữ liệu \"INTEGER\" cho các cột tăng tự động",
"description": "Cột tăng tự động của MySQL thường được sử dụng làm khóa chính độc lập với doanh nghiệp. Việc sử dụng các kiểu số nguyên chiếm ít không gian lưu trữ hơn và làm cho cấu trúc chỉ mục khóa chính nhỏ gọn hơn, mang lại hiệu suất truy vấn và DML tốt hơn. Mức độ lỗi đề xuất: Lỗi"
},
"column-auto-increment-must-unsigned": {
"title": "Thực thi việc sử dụng kiểu dữ liệu \"UNSIGNED\" cho các cột tăng tự động",
"description": "Loại không dấu không lưu trữ số âm và phạm vi giá trị có thể được lưu trữ theo cùng loại sẽ được nhân đôi, điều này có thể tránh tràn cột tăng tự động. Mức độ lỗi đề xuất: Cảnh báo"
},
"column-comment": {
"title": "Thực thi thêm nhận xét vào cột",
"description": "Thêm nhận xét vào cột là một phương pháp phát triển tốt, nhưng nhận xét quá dài có thể làm giảm khả năng đọc của lược đồ. Mức lỗi đề xuất: Cảnh báo",
"component": {
"required": {
"title": "Yêu cầu bình luận"
},
"maxLength": {
"title": "Chiều dài tối đa"
}
}
},
"column-maximum-character-length": {
"title": "Hạn chế độ dài của kiểu dữ liệu \"CHAR\"",
"description": "\"CHAR\" là loại có độ dài cố định. Ví dụ: cột CHAR(20) sẽ chiếm 20 khoảng trống ký tự ngay cả khi chỉ lưu trữ một ký tự, gây lãng phí. Khi chuỗi quá dài và độ dài không cố định, hãy cân nhắc sử dụng VARCHAR cho MySQL và sử dụng TEXT cho PostgreSQL. Mức độ lỗi đề xuất: Lỗi",
"component": {
"number": {
"title": "Chiều dài tối đa"
}
}
},
"column-maximum-varchar-length": {
"title": "Hạn chế độ dài của kiểu dữ liệu \"VARCHAR\"",
"description": "",
"component": {
"number": {
"title": "Chiều dài tối đa"
}
}
},
"column-auto-increment-initial-value": {
"title": "Hạn chế giá trị ban đầu của cột tăng tự động",
"description": "dựa trên yêu cầu quản lý để giới hạn giá trị ban đầu của cột tăng tự động. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"number": {
"title": "Giá trị ban đầu"
}
}
},
"column-current-time-count-limit": {
"title": "Hạn chế số lượng cột trong bảng thu được thời gian hệ thống",
"description": "Chỉ các cột ghi thời gian tạo bản ghi bằng \"DEFAULT NOW()\" và ghi thời gian cập nhật bản ghi bằng \"DEFAULT NOW() ON UPDATE\" mới cần gọi hàm để lấy thời gian hệ thống. Điều này là vô nghĩa và sẽ làm tăng chi phí tài nguyên để ghi lại thời gian hệ thống trong các cột khác. Mức độ lỗi đề xuất: Lỗi"
},
"column-require-default": {
"title": "Thực thi cài đặt giá trị mặc định trên các cột",
"description": "Việc đặt các giá trị mặc định đáp ứng logic nghiệp vụ có thể cải thiện hiệu quả chất lượng dữ liệu của quy trình phân tích xuôi dòng. Quy tắc này không kiểm tra các loại \"PRIMARY KEY\", \"JSON\", \"BLOB\", \"TEXT\", \"GEOMETRY\", \"AUTO_INCREMENT\", \"GENERATED\". Mức độ lỗi đề xuất: Cảnh báo"
},
"statement-select-no-select-all": {
"title": "Cấm sử dụng \"CHỌN *\"",
"description": "CHỌN * để tìm nạp toàn bộ dữ liệu hàng có thể gây tốn tài nguyên không cần thiết và cũng có thể gây ra kết quả không mong muốn trong ứng dụng khi bảng thêm hoặc xóa cột. Mức độ lỗi đề xuất: Lỗi"
},
"statement-where-require": {
"title": "Thực thi sự hiện diện của điều kiện \"WHERE\" trong câu lệnh",
"description": "Các truy vấn không có mệnh đề WHERE có thể gây ra sự lãng phí lớn về tài nguyên không cần thiết và DML có thể vô tình gây ra tình trạng mất dữ liệu lớn. Mức độ lỗi đề xuất: Lỗi"
},
"statement-where-no-leading-wildcard-like": {
"title": "Cấm sử dụng ký tự đại diện hàng đầu trong điều kiện lọc",
"description": "Khi sử dụng ký tự đại diện hàng đầu, chẳng hạn như \"THÍCH '%ABC'\", trình tối ưu hóa cơ sở dữ liệu không thể sử dụng tính năng quét chỉ mục nhanh và chuyển sang quét toàn bộ bảng hoặc quét chỉ mục đầy đủ, điều này có thể gây ra tác động nghiêm trọng đến hiệu suất. Mức độ lỗi đề xuất: Lỗi"
},
"statement-disallow-cascade": {
"title": "Cấm sử dụng \"CASCADE\"",
"description": "Cấm sử dụng \"CASCADE\" trong các mệnh đề \"DELETE\" và \"UPDATE\". Mức độ lỗi đề xuất: Lỗi"
},
"statement-disallow-commit": {
"title": "Cấm tuyên bố \"COMMIT\" rõ ràng",
"description": "Trong một số trường hợp, cần phải đưa nhiều câu lệnh vào một giao dịch được hệ thống thực hiện để nhanh chóng chạy lại trong trường hợp bị lỗi một phần. Do đó, \"COMMIT\" rõ ràng là không được phép. Mức độ lỗi đề xuất: Cảnh báo"
},
"statement-disallow-limit": {
"title": "Cấm sử dụng mệnh đề \"LIMIT\" trong câu lệnh DML",
"description": "Nếu LIMIT được sử dụng trong câu lệnh DML mà không có mệnh đề ORDER BY thì thứ tự các hàng bị ảnh hưởng sẽ không cố định, điều này có thể gây ra sự không thống nhất dữ liệu giữa cơ sở dữ liệu chính và bản sao trong một số chế độ sao chép. Mức độ lỗi đề xuất: Lỗi"
},
"statement-disallow-order-by": {
"title": "Cấm sử dụng mệnh đề \"ORDER BY\" trong câu lệnh \"UPDATE\" và \"DELETE\"",
"description": "Các hoạt động sắp xếp cực kỳ tốn nhiều tài nguyên, vì vậy, đối với các hoạt động cập nhật và xóa, bạn nên sử dụng điều kiện lọc xác định càng nhiều càng tốt thay vì sử dụng ORDER BY và LIMIT. Mức độ lỗi đề xuất: Lỗi"
},
"statement-merge-alter-table": {
"title": "Cấm đưa ra nhiều thay đổi độc lập trên cùng một bảng",
"description": "Mỗi thay đổi đối với một bảng có thể gây ra tình trạng khóa cấp độ bảng và tiêu tốn một lượng lớn tài nguyên. Nếu có nhiều thay đổi trong cùng một bảng, chúng sẽ được hợp nhất thành một câu lệnh thay đổi duy nhất. Mức độ lỗi đề xuất: Lỗi"
},
"statement-insert-must-specify-column": {
"title": "Thực thi chỉ định tên cột trong câu lệnh \"INSERT\"",
"description": "Câu lệnh \"CHÈN VÀO bảng GIÁ TRỊ (...)\" không liệt kê tên cột rõ ràng. Sau khi thứ tự cột thay đổi hoặc các cột được thêm hoặc bớt, câu lệnh có thể không thành công hoặc tạo ra dữ liệu không mong muốn. Mức độ lỗi đề xuất: Lỗi"
},
"statement-insert-disallow-order-by-rand": {
"title": "Cấm sử dụng \"ORDER BY rand()\" trong câu lệnh \"INSERT\"",
"description": "Việc sắp xếp ngẫu nhiên dữ liệu được chèn vào là vô nghĩa và sẽ chỉ tiêu tốn những tài nguyên không cần thiết. Mức độ lỗi đề xuất: Lỗi"
},
"statement-insert-row-limit": {
"title": "Hạn chế số lượng hàng được chèn tối đa",
"description": "Tiết lộ số lượng hàng được chèn có thể giúp xác định xem câu lệnh có đáp ứng được kỳ vọng kinh doanh hay không. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"number": {
"title": "Số lượng chèn tối đa"
}
}
},
"statement-affected-row-limit": {
"title": "Hạn chế số lượng hàng được cập nhật hoặc xóa tối đa (ước lượng).",
"description": "Tiết lộ số hàng cần cập nhật hoặc xóa có thể giúp xác định xem câu lệnh có đáp ứng được kỳ vọng kinh doanh hay không. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"number": {
"title": "Hàng bị ảnh hưởng tối đa"
}
}
},
"statement-dml-dry-run": {
"title": "Xác thực khả năng thực thi của các câu lệnh DML",
"description": "Khi cú pháp đúng nhưng tên bảng không chính xác hoặc không đủ quyền, nó có thể được phát hiện bằng cách chạy thử trước khi thực thi thực tế. Mức độ lỗi đề xuất: Cảnh báo"
},
"statement-disallow-add-column-with-default": {
"title": "Hạn chế thêm các cột có giá trị mặc định vào bảng",
"description": "Trước PostgreSQL 11, việc thêm một cột có giá trị mặc định sẽ khiến bảng bị khóa và không thể đọc và ghi, điều này có thể gây gián đoạn hoạt động kinh doanh. Ở PostgreSQL 11 trở lên vấn đề này đã được tối ưu hóa và không cần để ý đến quy tắc này. Mức độ lỗi đề xuất: Cảnh báo"
},
"statement-add-check-not-valid": {
"title": "Thực thi bao gồm tùy chọn \"KHÔNG CÓ GIÁ TRỊ\" khi thêm các ràng buộc \"KIỂM TRA\"",
"description": "Việc thêm ràng buộc CHECK cần phải xác minh dữ liệu hiện có và yêu cầu khóa bảng ACCESS EXCLUSIVE. Điều này chặn việc đọc và viết, có thể gây gián đoạn hoạt động kinh doanh. Bạn nên thêm tùy chọn \"KHÔNG CÓ GIÁ TRỊ\" để xác thực dữ liệu mới và xác thực dữ liệu hiện có theo cách thủ công sau khi thay đổi hoàn tất. Mức độ lỗi đề xuất: Cảnh báo"
},
"statement-disallow-add-not-null": {
"title": "Hạn chế thêm ràng buộc \"NOT NULL\" vào các cột hiện có",
"description": "Trước PostgreSQL 11, việc thêm ràng buộc NOT NULL cần phải xác minh dữ liệu hiện có. Điều này chặn việc đọc và viết, có thể gây gián đoạn hoạt động kinh doanh. Trong PostgreSQL 11 trở lên, vấn đề này đã được tối ưu hóa và không cần phải chú ý đến thông số kỹ thuật này. Mức độ lỗi đề xuất: Cảnh báo"
},
"statement-select-full-table-scan": {
"title": "Kiểm tra quét toàn bộ bảng cho các truy vấn",
"description": "Quét toàn bộ bảng là một hoạt động tốn tài nguyên và có thể gây ảnh hưởng nghiêm trọng đến hiệu suất. Mức độ lỗi đề xuất: Lỗi"
},
"statement-create-specify-schema": {
"title": "Cấm tạo đối tượng mà không chỉ định schema",
"description": "Nếu không chỉ định schema, đối tượng sẽ được tạo trong schema mặc định, điều này có thể gây ra kết quả không mong muốn."
},
"statement-check-set-role-variable": {
"title": "Kiểm tra xem Lệnh Thiết lập Vai trò có ở đầu không",
"description": "Nếu không thiết lập lệnh vai trò đúng cách ở đầu phiên làm việc, có thể dẫn đến truy cập không được ủy quyền hoặc gán quyền không đúng cách, tiềm ẩn nguy cơ đe dọa bảo mật và tính toàn vẹn của dữ liệu. Cấp độ lỗi: Cảnh báo"
},
"statement-disallow-using-temporary": {
"title": "Cấm sử dụng bảng tạm",
"description": "Bảng tạm có thể gây ra tình trạng khóa cấp độ bảng và tiêu tốn một lượng lớn tài nguyên. Mức độ lỗi đề xuất: Lỗi"
},
"statement-disallow-using-filesort": {
"title": "Cấm sử dụng sắp xếp tệp",
"description": "Sắp xếp tệp có thể gây tốn tài nguyên không cần thiết và cũng có thể gây ra kết quả không mong muốn trong ứng dụng khi bảng thêm hoặc xóa cột. Mức độ lỗi đề xuất: Lỗi"
},
"statement-where-no-equal-null": {
"title": "Cấm sử dụng so sánh bằng NULL trong mệnh đề WHERE",
"description": "Kết quả của việc so sánh bằng NULL luôn là NULL, có thể gây ra các kết quả không mong muốn. Cấp độ lỗi gợi ý: Cảnh báo"
},
"statement-where-disallow-using-function": {
"title": "Ch tránh sử dụng các hàm hoặc thực hiện tính toán trên các trường được lập chỉ mục trong mệnh đề WHERE",
"description": "Nếu bạn áp dụng một hàm hoặc thực hiện tính toán trên trường được lập chỉ mục, cơ sở dữ liệu không thể sử dụng chỉ mục và phải quét toàn bộ bảng."
},
"statement-query-minimum-plan-level": {
"title": "Hạn chế mức truy cập tối đa của phương thức truy vấn",
"description": "Ch tối ưu hóa hiệu suất SQL hướng đến truy cập hằng số (const), đặt mục tiêu mức tham chiếu (ref) làm tiêu chuẩn, với hiệu suất chấp nhận được ở mức phạm vi (range).",
"component": {
"level": {
"title": "Mức tối đa"
}
}
},
"statement-where-maximum-logical-operator-count": {
"title": "Giới hạn số lượng giá trị trong mệnh đề IN hoặc OR của mệnh đề WHERE",
"description": "Điều này giúp ngăn chặn hiệu suất suy giảm do các phép so sánh rộng rãi và hạn chế tài nguyên.",
"component": {
"number": {
"title": "Số lớn nhất"
}
}
},
"statement-maximum-limit-value": {
"title": "Giới hạn số lượng tối đa của mệnh đề LIMIT",
"description": "Bằng cách giới hạn số dòng trả về thông qua LIMIT, đảm bảo cơ sở dữ liệu xử lý các khối dữ liệu vừa phải, cải thiện tốc độ thực thi truy vấn. Giá trị LIMIT được giới hạn giúp ngăn chặn việc sử dụng bộ nhớ quá mức, bảo vệ tính ổn định tổng thể của hệ thống và ngăn ngừa hiệu suất giảm.",
"component": {
"number": {
"title": "Giá trị tối đa"
}
}
},
"statement-maximum-join-table-count": {
"title": "Giảm thiểu số lượng bảng cần tham gia",
"description": "Bản càng tham gia nhiều bảng, truy vấn sẽ càng phức tạp và thời gian thực thi càng lâu. Nói chung, tốt nhất nên giảm thiểu số lượng tham gia bảng xuống mức tối thiểu.",
"component": {
"number": {
"title": "Giá trị tối đa"
}
}
},
"statement-maximum-statements-in-transaction": {
"title": "Hạn chế số lượng câu lệnh trong một giao dịch",
"description": "Các giao dịch lớn có thể ảnh hưởng đáng kể đến hiệu suất của cơ sở dữ liệu. Nếu một số lượng lớn các câu lệnh được tham gia và một câu lệnh bị lỗi, việc khôi phục toàn bộ giao dịch sẽ trở nên phức tạp. Giới hạn các câu lệnh giúp giảm thiểu thiệt hại tiềm ẩn do một lỗi đơn lẻ gây ra và đơn giản hóa các thủ tục khôi phục.",
"component": {
"number": {
"title": "Giá trị tối đa"
}
}
},
"statement-join-strict-column-attrs": {
"title": "Các trường cần ghép phải có cùng kiểu dữ liệu và bộ ký tự",
"description": "Nếu kiểu dữ liệu, bảng mã của các cột dùng để ghép (join) không giống nhau, cơ sở dữ liệu có thể không xác định chính xác các hàng khớp nhau, dẫn đến kết quả không chính xác hoặc không đầy đủ."
},
"statement-disallow-mix-ddl-dml": {
"title": "Không nên trộn lẫn DDL và DML",
"description": "Chú ý để đạt hiệu suất tối ưu và tính toàn vẹn dữ liệu, tránh kết hợp các câu lệnh DDL và DML trong cùng một tập lệnh."
},
"statement-prior-backup-check": {
"title": "Kiểm tra sao lưu trước khi thay đổi dữ liệu",
"description": "Quy tắc này sẽ kiểm tra xem có thể tạo sao lưu trước khi thay đổi dữ liệu hay không. Để biết thêm chi tiết, hãy kiểm tra xem cơ sở dữ liệu mục tiêu sao lưu có tồn tại và không cho phép câu lệnh DDL."
},
"schema-backward-compatibility": {
"title": "Kiểm tra khả năng tương thích ngược của ứng dụng",
"description": "Một số thay đổi có thể ảnh hưởng đến các ứng dụng đang chạy, chẳng hạn như sửa đổi tên đối tượng cơ sở dữ liệu, thêm các ràng buộc mới, v.v. Quy tắc này có thể tránh những thay đổi bất cẩn dẫn đến lỗi ứng dụng hiện có. Mức độ lỗi đề xuất: Cảnh báo"
},
"database-drop-empty-database": {
"title": "Cấm xóa cơ sở dữ liệu không trống",
"description": "Việc xóa chỉ được phép khi không có bảng nào trong cơ sở dữ liệu, điều này có thể tránh được việc vô tình xóa. Mức độ lỗi đề xuất: Lỗi"
},
"index-no-duplicate-column": {
"title": "Cấm các chỉ mục chứa các cột trùng lặp",
"description": "Việc tạo chỉ mục có các cột trùng lặp sẽ dẫn đến thất bại. Mức độ lỗi đề xuất: Lỗi"
},
"index-type-no-blob": {
"title": "Cấm tạo chỉ mục trên cột kiểu dữ liệu \"BLOB\" và \"TEXT\"",
"description": "Loại \"BLOB\" thường được sử dụng để lưu trữ dữ liệu nhị phân và không được sử dụng làm điều kiện truy vấn. Nếu một chỉ mục được tạo nhầm trên loại cột này, nó sẽ tiêu tốn rất nhiều tài nguyên và gây ảnh hưởng nghiêm trọng đến hiệu suất. Mức độ lỗi đề xuất: Lỗi"
},
"index-pk-type-limit": {
"title": "Giới hạn loại khóa chính",
"description": "Buộc loại khóa chính là INT hoặc BIGINT."
},
"index-key-number-limit": {
"title": "Hạn chế số lượng cột trong một chỉ mục",
"description": "Chỉ mục tổng hợp có trên 5 cột không cải thiện đáng kể hiệu suất truy vấn nhưng nó chiếm nhiều không gian và làm giảm hiệu suất DML. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"number": {
"title": "Số cột tối đa"
}
}
},
"index-total-number-limit": {
"title": "Hạn chế số lượng chỉ mục trên một bảng",
"description": "Mặc dù các chỉ mục có thể cải thiện hiệu suất truy vấn nhưng chúng cũng chiếm nhiều dung lượng và làm giảm hiệu suất DML. Vì vậy, không nên tạo nhiều hơn 5 chỉ mục trong một bảng. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"number": {
"title": "Số chỉ mục tối đa"
}
}
},
"index-primary-key-type-allowlist": {
"title": "Danh sách các loại khóa chính được phép",
"description": "Loại khóa chính thích hợp có thể tối ưu hóa cấu trúc lưu trữ, giảm mức sử dụng không gian và có lợi cho hiệu suất chèn và truy vấn. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"list": {
"title": "Danh sách cho phép"
}
}
},
"index-create-concurrently": {
"title": "Thực thi việc tạo chỉ mục đồng thời",
"description": "Trong PostgreSQL 11 trở lên, việc sử dụng câu lệnh chuẩn để tạo chỉ mục sẽ khiến bảng bị khóa và không thể ghi. Sử dụng chế độ \"ĐỒNG HÀNH\" có thể tránh được sự cố này. Mức độ lỗi đề xuất: Cảnh báo"
},
"index-type-allow-list": {
"title": "Danh sách loại chỉ mục cho phép",
"description": "Các loại chỉ mục khác nhau có các đặc điểm về hiệu suất khác nhau. Ví dụ, chỉ mục B-tree phù hợp cho các truy vấn phạm vi, trong khi chỉ mục băm phù hợp cho các truy vấn bằng nhau. Cấp độ lỗi gợi ý: Cảnh báo",
"component": {
"list": {
"title": "Danh sách cho phép"
}
}
},
"system-charset-allowlist": {
"title": "Danh sách Charset được phép",
"description": "Bộ ký tự xác định những ký tự nào có thể được lưu trữ trong bảng. Việc sử dụng bộ ký tự sai có thể khiến một số ký tự nhất định trong ứng dụng không thể được lưu trữ và hiển thị chính xác, chẳng hạn như CJK và Emoji. Mức độ lỗi đề xuất: Lỗi",
"component": {
"list": {
"title": "Danh sách cho phép"
}
}
},
"system-collation-allowlist": {
"title": "Danh sách Collation được phép",
"description": "Việc đối chiếu xác định các quy tắc để so sánh và sắp xếp ký tự. Ví dụ: khi sử dụng cách đối chiếu không phân biệt chữ hoa chữ thường, \"ABC\" và \"abc\" sẽ được coi là cùng một chuỗi trong truy vấn. Mức độ lỗi đề xuất: Lỗi",
"component": {
"list": {
"title": "Danh sách cho phép"
}
}
},
"system-comment-length": {
"title": "Hạn chế độ dài của bình luận",
"description": "",
"component": {
"number": {
"title": "Độ dài bình luận tối đa"
}
}
},
"system-procedure-disallow-create": {
"title": "Cấm thực thi các thủ tục hệ thống",
"description": "Cấm thực thi các thủ tục hệ thống. Mức độ lỗi đề xuất: Cảnh báo"
},
"system-event-disallow-create": {
"title": "Không cho phép tạo sự kiện",
"description": "Quy tắc này cấm tạo sự kiện trong cơ sở dữ liệu. Các sự kiện hệ thống thường thực hiện các tác vụ tự động có thể ảnh hưởng đến môi trường cơ sở dữ liệu. Bằng cách không cho phép tạo chúng, nó giúp duy trì kiểm soát về các hoạt động cơ sở dữ liệu và ngăn chặn các sự cố tiềm ẩn. Mức độ lỗi được đề xuất: Cảnh báo"
},
"system-view-disallow-create": {
"title": "Không cho phép tạo view",
"description": "Quy tắc này cấm tạo view trong cơ sở dữ liệu. View cung cấp một biểu diễn ảo của dữ liệu có thể đơn giản hóa các truy vấn và tăng cường bảo mật dữ liệu. Bằng cách không cho phép tạo chúng, nó giúp duy trì kiểm soát về cấu trúc cơ sở dữ liệu và ngăn chặn các rủi ro bảo mật tiềm ẩn. Mức độ lỗi được đề xuất: Cảnh báo"
},
"system-function-disallow-create": {
"title": "Không cho phép tạo hàm",
"description": "Quy tắc này cấm việc tạo các hàm trong cơ sở dữ liệu. Các hàm cung cấp logic có thể tái sử dụng giúp đơn giản hóa các truy vấn và tăng cường tính toàn vẹn dữ liệu. Bằng cách không cho phép tạo chúng, nó giúp duy trì kiểm soát đối với cấu trúc cơ sở dữ liệu và ngăn ngừa các rủi ro bảo mật tiềm ẩn. Mức độ lỗi đề xuất: Cảnh báo"
},
"system-function-disallowed-list": {
"title": "Cấm sử dụng một số hàm",
"description": "Quy tắc này hạn chế việc sử dụng các hàm cụ thể trong cơ sở dữ liệu. Bằng cách cấm sử dụng các hàm này, nó giúp duy trì tính nhất quán và bảo mật dữ liệu. Mức độ lỗi đề xuất: Cảnh báo",
"component": {
"list": {
"title": "Danh sách không cho phép"
}
}
},
"advice-online-migration": {
"title": "Khuyến nghị bật di chuyển trực tuyến",
"description": "Nếu số lượng hàng bảng được di chuyển vượt quá cài đặt của bạn, hãy bật di chuyển trực tuyến. Mức lỗi được đề xuất: Cảnh báo",
"component": {
"number": {
"title": "Giá trị ngưỡng"
}
}
},
"statement-add-foreign-key-not-valid": {
"title": "Thực thi bao gồm tùy chọn \"KHÔNG CÓ GIÁ TRỊ\" khi thêm khóa ngoại",
"description": "Việc thêm khóa ngoại cần xác minh dữ liệu hiện có và yêu cầu khóa bảng SHARE ROW EXCLUSIVE. \nKhối này ghi, có thể gây gián đoạn kinh doanh. \nBạn nên thêm tùy chọn \"KHÔNG CÓ GIÁ TRỊ\" để xác thực dữ liệu mới và xác thực dữ liệu hiện có sau khi thay đổi hoàn tất. \nMức độ lỗi đề xuất: Cảnh báo"
},
"statement-non-transactional": {
"title": "Phát hiện và báo cáo các tuyên bố phi giao dịch",
"description": ""
}
},
"level": {
"name": "Mức độ lỗi",
"error": "Lỗi",
"warning": "Cảnh báo",
"disabled": "Tàn tật"
}
}