
Năm vấn đề chung về cơ sỡ dữ liệu trên PHP
lượt xem 71
download

hãy khám phá năm vấn đề về cơ sỡ dữ liệu phố biến trong các ứng dụng PHP-gồm thiết kế lược đồ cơ sở dữ liệu,truye cập cơ sở dữ liệu và mã logic nghiệp vụ sử dụng cơ sở dữ liệu-cũng như giải pháp của chúng
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Năm vấn đề chung về cơ sỡ dữ liệu trên PHP
- N mv n chung v c s d li u trên PHP Page 1 of 10 N mv n chung v c s d li u trên PHP M c : Trung bình Jack Herrington, T ng biên t p, Code Generation Network 08 01 2010 Hãy khám phá n m v n v c s d li u ph bi n x y ra trong các ng d ng PHP -- g m thi t k l c c s d li u, truy c p c s d li u và mã logic nghi p v s d ng c s d li u -- c ng nh các gi i pháp c a chúng. N u ch có m t cách s d ng c s d li u chính xác ... B n có th t o thi t k c s d li u, truy c p c s d li u và mã logic nghi p v PHP t trên u trang c a nó theo m t s cách nào ó và b n th ng k t thúc khi nh n th y nó sai. Bài vi t này minh h a n m v n th ng g p trong vi c thi t k c s d li u, trong mã PHP truy c p các c s d li u và cách s a ch a nh ng v n này khi b n b t g p chúng. V n 1: S d ng MySQL tr c ti p Khi s dùng các hàm mysql_ truy c p tr c ti p vào c s d li u có m t v n ph bi n là mã PHP ã c . Li t kê 1 ch ra cách truy c p tr c ti p vào c s d li u. Li t kê 1. Access/get.php ! ! "#$%$&' ()*+ ,-$)$ ". ." " ! /01! 2 ! 2 3 4 5 ! 6 Hãy l u ý vi c s d ng hàm mysql_connect truy c p vào c s d li u. C ng chú ý truy v n trong ó có dùng s liên k t chu i b sung tham s $name vào truy v n ó. K! thu t này có hai s l a ch n t t: mô un PEAR DB và các l"p PHP Data Objects (PDO-Các i t ng d li u PHP). C hai u cung c p s tr#u t ng t# vi c l a ch n c a m t c s d li u c th . Do ó, mã c a b n có th ch y mà không c n i u ch nh quá nhi u trên IBM® DB2®, MySQL, PostgreSQL, ho c c s d li u khác b t k$ mà b n mu n k t n i n. Các giá tr% khác trong vi c s d ng các t ng tr#u t ng c a mô un PEAR DB và PDO là b n có th s d ng toán t ? trong các câu l nh SQL c a b n. Vi c này làm cho SQL d& dàng b o trì h n và b o v ng d ng c a b n kh'i các cu c t n công n i x SQL. Mã thay th khi s d ng PEAR DB c hi n th% d "i ây. Li t kê 2. Access/get_good.php "78. " !
- N mv n chung v c s d li u trên PHP Page 2 of 10 9:: 9 ; : ! < 7899& ! =$>)99 $ ?6 + ! 2 ?6 #$%$&' ()*+ ,-$)$ ! ! ?6 @ /01! 2 ! 2 3 4 5 ! 6 Chú ý r(ng t t c các c p tr c ti p c a MySQL ã di&n ra, tr# chu i k t n i c s d li u trong $dsn. Ngoài ra, chúng ta s d ng bi n $name trong SQL thông qua toán t ?. Sau ó, d li u v"i truy v n này c g i i thông qua array cu i ph ng th c query(). V n 2: Không s d ng ch c n ng t ng t ng Gi ng nh h u h t các c s d li u hi n i, MySQL có kh n ng t o các trình nh n d ng (identifier) duy nh t t ng t ng trên m t c s cho m i b n ghi. M c dù v y, chúng ta v)n th y mã l n u tiên ch y m t l nh SELECT tìm mã nh n d ng (id) t i a, sau ó b sung thêm m t vào id ó, c ng nh m t b n ghi m"i. Li t kê 3 cho th y m t l c m)u bad (x u). Li t kê 3. Badid.sql 7)*= '>8%$ @( $A@#'# ! &)$>'$ '>8%$ +$7@B+@C' '$A' '$A' ! @C#$)' @C'* D>%B$# E 4 5 ! @C#$)' @C'* D>%B$# F 4 ! @C#$)' @C'* D>%B$# E 4 ! Tr ng id ây c quy %nh n gi n là m t s nguyên. Vì v y, m c dù nó s* là duy nh t, chúng ta có th thêm vào b t k$ giá tr% nào mà chúng ta mu n, nh ã ch ra trong câu l nh INSERT ti p theo câu l nh CREATE. Li t kê 4 ch ra mã PHP b sung thêm users (nh ng ng i s d ng) vào ki u l c này. Li t kê 4. Add_user.php "78. " ! ! 9:: 9 ; : ! < 7899& ! =$>)99 $ ?6 + ! 2 ?6 "#$%$&' G ()*+ " ! ! ?6 @ /01! 2 H E! ?6 "@C#$)' @C'* D>%B$# " ! ?6 G ! ! 2
- N mv n chung v c s d li u trên PHP Page 3 of 10 4 ! 3 ! 6 Mã trong add_user.php u tiên th c hi n m t truy v n tìm ra giá tr% t i a c a id. Sau ó t p này ch y m t câu l nh INSERT v"i giá tr% id c ng thêm m t. Mã này có th không ch y thành công trong các i u ki n ganh ua (race) trên các máy ch có m t t i n ng. H n n a, nó không hi u qu . Vì v y, s thay th là gì? S d ng tính n ng t ng t ng trong MySQL t o các ID duy nh t cho m i l n chèn t ng. L c c p nh t c hi n th% bên d "i. Li t kê 5. Goodid.php 7)*= '>8%$ @( $A@#'# ! &)$>'$ '>8%$ +$7@B+@C' C*' CB%% >B'* @C&)$+$C' '$A' C*' CB%% '$A' C*' CB%% =)@+>)I J$I ! @C#$)' @C'* D>%B$# 4 5 ! @C#$)' @C'* D>%B$# 4 ! @C#$)' @C'* D>%B$# 4 ! Chúng ta thêm c NOT NULL ch ra r(ng các tr ng này không r ng (null). Chúng ta c ng ã b sung c AUTO_INCREMENT ch th% r(ng tr ng này t ng t ng, c ng nh c PRIMARY KEY ch th% tr ng nào là id. Nh ng thay i này cho phép t ng m t chút t c . Li t kê 6 cho th y mã PHP ã c p nh t, mã này chèn users (nh ng ng i dùng) vào b ng. Li t kê 6. Add_user_good.php "78. " ! 9:: 9 ; : ! < 7899& ! =$>)99 $ ?6 + ! 2 ?6 "@C#$)' @C'* D>%B$# " ! ?6 G ! ?6 "#$%$&' " ! ! ?6 @ /01! 2 ! 2 4 ! 3 ! 6 Thay vì nh n c giá tr% id t i a, tôi bây gi ch c n s d ng câu l nh INSERT chèn d li u, sau ó s d ng m t câu l nh SELECT l y id c a b n ghi v#a m"i c chèn vào. Mã này n gi n h n nhi u và hi u qu h n so v"i phiên b n g c và l c liên quan c a nó. M t l a ch n khác i v"i ch c n ng t ng t ng c a MySQL là s d ng ph ng th c nextId() trong h th ng PEAR DB. Trong tr ng h p c a MySQL, i u này t o ra m t b ng tu n t m"i và qu n lý vi c s d ng m t c ch khóa ph c t p. L i th c a vi c s d ng ph ng th c này là nó s* ho t ng trên các h th ng c s d li u khác. Dù b(ng cách nào, b n nên s d ng m t h th ng qu n lý s t ng các ID duy nh t cho b n và không d a vào h th ng mà b n truy v n u tiên, sau ó t ng giá tr% c a chính b n và thêm b n ghi. Cách ti p c n th hai d& b% nh h ng theo các i u ki n ganh ua trên các trang có kh i l ng cao.
- N mv n chung v c s d li u trên PHP Page 4 of 10 V n 3: S d ng nhi u c s d li u M t khi chúng ta th y ng d ng mà m i b ng trong m t c s d li u riêng bi t. Có nhi u lý do th c hi n i u ó trong các c s d li u r t l"n, nh ng i v"i ng d ng trung bình, b n không c n m c phân o n này. Ngoài ra, m c dù có th th c hi n các truy v n liên quan trên nhi u c s d li u, tôi r t khuyên b n ch ng l i nó. Cú pháp ph c t p h n. Qu n lý sao l u và khôi ph c l i không d& dàng. Cú pháp có th ho c không th làm vi c gi a các máy c s d li u khác nhau. Và th t khó kh n ti p t c theo c u trúc quan h khi các b ng c chia trên nhi u c s d li u. Vì v y, nhi u c s d li u s* gi ng th nào? + b t u, b n c n m t s d li u. Li t kê 7 cho th y d li u này c chia thành b n t p. Li t kê 7. Các t p c s d li u ( . 9 &)$>'$ '>8%$ +$7@B+@C' +$7@B+@C' '$A' '$A' ! % . 9 @C#$)' @C'* D>%B$# E E E.4 : E.4 ! @C#$)' @C'* D>%B$# F E F.4 : F.4 ! B . 9 7)*= '>8%$ @( $A@#'# ! &)$>'$ '>8%$ +$7@B+@C' '$A' '$A' ! % . 9 @C#$)' @C'* D>%B$# E 4 5 ! @C#$)' @C'* D>%B$# F 4 ! Trong phiên b n nhi u c s d li u c a các t p này, b n s* n p câu l nh SQL vào trong m t c s d li u, sau ó n p các câu l nh SQL users (nh ng ng i s d ng) vào c s d li u khác. Mã PHP truy v n c s d li u cho các t p này liên k t v"i ng i dùng c th c hi n th% d "i ây. Li t kê 8. Getfiles.php "78. " ! 9:: 9 ; : E ! < 7899& ! =$>)99 $ ?6 + ! 2 ?6 "#$%$&' ()*+ ,-$)$ " ! ! ?6 @ /01! 2 ! 2 ! ! 9:: 9 ; : F ! < 7899& ! =$>)99 $ ?6 + ! 2
- N mv n chung v c s d li u trên PHP Page 5 of 10 ?6 "#$%$&' K ()*+ ,-$)$ " ! ?6 @ /1 ! 2 ! 2 4 5 ! 3 ! 6 Hàm get_user k t n i t"i c s d li u ch a b ng c a nh ng ng i s d ng và l y ra ID cho m t ng i dùng ã bi t. Hàm get_files k t n i n b ng các t p và l y ra các hàng có k t h p v"i ng i dùng ã bi t. Cách t t h n làm t t c nh ng i u này là n p d li u vào m t c s d li u, sau ó th c hi n m t truy v n, nh c hi n th% bên d "i. Li t kê 9. Getfiles_good.php "78. " ! ! 9:: 9 ; : ! < 7899& ! =$>)99 $ ?6 + ! 2 ?6 "#$%$&' .K ()*+ ,-$)$ . >C7 . . " ! ?6 @ /1 ! 2 ! 2 4 5 ! 3 ! 6 Mã này không ch ng n h n mà nó c ng d& hi u h n và hi u qu h n. Thay vì th c hi n hai truy v n, chúng ta ang th c hi n m t. Trong khi v n này l c i u, chúng ta ã th y nó trong th c t có th i gian bi t r(ng t t c các b ng ph i trong cùng m t c s d li u, tr# khi có m t lý do c p thi t khác. V n 4: Không s d ng các m i quan h Các c s d li u quan h không gi ng nh các ngôn ng l p trình. Chúng không có ki u m ng. Thay vào ó, chúng s d ng các m i quan h gi a các b ng t o ra c u trúc m t-t"i-nhi u gi a các i t ng, chúng có cùng tác d ng nh m t m ng. M t v n mà tôi ã th y v"i các ng d ng là khi các k! s c g ng s d ng m t c s d li u nh th nó ã là m t ngôn ng l p trình, t o arrays (các m ng) b(ng cách s d ng chu i v n b n v"i các trình nh n d ng tách nhau b(ng d u ph,y. Hãy xem l c d "i ây. Li t kê 10. Bad.sql 7)*= '>8%$ @( $A@#'# ! &)$>'$ '>8%$ +$7@B+@C' '$A' '$A' !
- N mv n chung v c s d li u trên PHP Page 6 of 10 7)*= '>8%$ @( $A@#'# ! &)$>'$ '>8%$ +$7@B+@C' '$A' '$A' '$A' ! @C#$)' @C'* D>%B$# E E.4 : E.4 ! @C#$)' @C'* D>%B$# F E.4 : E.4 ! @C#$)' @C'* D>%B$# E 4 5 E F ! M t ng i dùng trong h th ng có th có nhi u t p. Trong m t ngôn ng l p trình, b n s* s d ng m t m ng bi u di&n các t p liên k t v"i ng i dùng. Trong ví d này, l p trình viên ã ch n t o ra m t tr ng files (các t p) ch a danh sách các id t p c phân cách b(ng d u ph,y. + có c m t danh sách t t c các t p cho ng i dùng c th , l p trình viên tr "c tiên ph i c hàng t# b ng nh ng ng i dùng, sau ó phân tích cú pháp v n b n c a t p và ch y m t câu l nh SELECT riêng l- cho m i t p. Mã này c hi n th% bên d "i.. Li t kê 11. Get.php "78. " ! 9:: 9 ; : ! < 7899& ! =$>)99 $ ?6 + ! 2 ?6 "#$%$&' ()*+ ,-$)$ " ! ! ?6 @ /01! 2 ! ?6 "#$%$&' K ()*+ ,-$)$ " ! ?6 @ /1 ! 2 2 ! 2 4 5 ! 3 ! 6 K! thu t này ch m, khó b o trì và không t n d ng t t c s d li u. Gi i pháp duy nh t là tái ki n trúc l c này a nó tr l i thành m t d ng quan h truy n th ng, nh c hi n th% d "i ây. Li t kê 12. Good.sql 7)*= '>8%$ @( $A@#'# ! &)$>'$ '>8%$ +$7@B+@C' +$7@B+@C' '$A' '$A' ! 7)*= '>8%$ @( $A@#'# ! &)$>'$ '>8%$ +$7@B+@C' '$A' '$A' ! @C#$)' @C'* D>%B$# E 4 5 ! @C#$)' @C'* D>%B$# E E E.4 : E.4 ! @C#$)' @C'* D>%B$# F E E.4 : E.4 !
- N mv n chung v c s d li u trên PHP Page 7 of 10 . ây, m i t p có liên quan n ng i dùng thông qua hàm user_id trong b ng t p. +i u này h u nh có v- l c h u v"i b t k$ ai nhìn th y i u này nh là m t m ng. Ch c ch n, các m ng không tham chi u n i t ng trong m ng -- th c t , ng c l i hoàn toàn. Nh ng trong m t c s d li u quan h , ây là cách nh ng th này làm và lí do các truy v n là nhanh h n và d& dàng h n nhi u. Li t kê 13 cho th y mã PHP t ng ng. Li t kê 13. Get_good.php "78. " ! 9:: 9 ; : ! < 7899& ! =$>)99 $ ?6 + ! 2 ! ?6 "#$%$&' .K ()*+ ,-$)$ . >C7 . . " ! ?6 @ /1 ! 2 ! 2 4 5 ! 3 ! 6 . ây, chúng ta th c hi n m t truy v n n c s d li u nh n c t t c các hàng. Mã này không ph c t p và nó s d ng c s d li u nh nó ã cd %nh. V n 5: M u n+1 Tôi không th nói cho b n bi t bao nhiêu l n chúng ta ã nhìn th y các ng d ng l"n trong ó mã này u tiên l y ra m t danh sách các th c th -- g i là các khách hàng -- sau ó quay tr l i và l y ra chúng t#ng ng i m t có c nh ng chi ti t cho t#ng th c th . Chúng ta g i nó là m)u n+1 vì ó là có bao nhiêu truy v n s* c th c hi n -- m t truy v n l y ra danh sách t t c các th c th , r i m t truy v n cho m i m t trong n th c th . +ây không ph i là m t v n khi n = 10, nh ng s* là gì khi n = 100 ho c n = 1000? R i, s thi u kh n ng th c s óng góp vào. Li t kê 14 cho th y m t ví d v m t l c nh v y. Li t kê 14. Schema.sql 7)*= '>8%$ @( $A@#'# ! &)$>'$ '>8%$ +$7@B+@C' C*' CB%% >B'* @C&)$+$C' '$A' C*' CB%% =)@+>)I J$I ! 7)*= '>8%$ @( $A@#'# 5 ! &)$>'$ '>8%$ 5 +$7@B+@C' C*' CB%% >B'* @C&)$+$C' +$7@B+@C' C*' CB%% '$A' C*' CB%% =)@+>)I J$I ! @C#$)' @C'* D>%B$# L 5 - ! @C#$)' @C'* D>%B$# 7 3 ' ! @C#$)' @C'* 5 D>%B$# E & M > ! @C#$)' @C'* 5 D>%B$# E = - 5 ! @C#$)' @C'* 5 D>%B$# E =-= - 5 ! @C#$)' @C'* 5 D>%B$# F = = ! @C#$)' @C'* 5 D>%B$# F ) ) ! @C#$)' @C'* 5 D>%B$# F = ) !
- N mv n chung v c s d li u trên PHP Page 8 of 10 +ây là l c áng tin c y. Không có gì sai ây. V n là trong mã truy c p vào c s d li u tìm t t c các sách cho m t tác gi c th , nh c hi n th% d "i ây. Li t kê 15. Get.php 78. ! 9:: 9 ; : 5 ! < 7899& ! =$>)99 $ ?6 + ! 2 ! ?6 "#$%$&' ()*+ ,-$)$ " ! ! ?6 @ /01! 2 ! 2 5 ! ?6 "#$%$&' ()*+ 5 ,-$)$ " ! ! ?6 @ /1 /01! 2 ! 2 5 ! ?6 "#$%$&' K ()*+ 5 ,-$)$ " ! ?6 @ ! 2 ! 2 L 5 - ! 5 5 ! 5 5 5 5 5 ! 3 5 ! 2 6 N u b n nhìn vào mã d "i cùng, b n có kh n ng suy ngh/ n chính mình, "Ôi, i u này th c s s ch s*." Tr "c tiên, nh n c id, tác gi , r i nh n c m t danh sách các cu n sách, sau ó nh n c thông tin v m i cu n sách. Ch c ch n, nó s ch s* -- nh ng nó có hi u qu không? Không. Hãy nhìn xem chúng ta ph i th c hi n bao nhiêu các truy v n l y ra ch các sách c a Jack Herrington. M t truy v n nh n c m t id, m t truy v n khác nh n c m t danh sách các cu n sách, sau ó m t truy v n cho m i cu n sách. N m truy v n cho ba cu n sách! Gi i pháp này là có m t hàm th c hi n m t s l ng l"n truy v n, nh li t kê d "i ây. Li t kê 16. Get_good.php 78. ! 9:: 9 ; : 5 ! < 7899& ! =$>)99 $ ?6 + ! 2 5 ! ?6 "#$%$&' 5 .K ()*+ 5 ,-$)$ 5 . . >C7 . " !
- N mv n chung v c s d li u trên PHP Page 9 of 10 ! ?6 @ /1 ! 2 ! 2 5 5 L 5 - ! 3 5 ! 6 Bây gi l y ra danh sách yêu c u ch m t truy v n, nhanh. Nó có ngh/a là tôi có kh n ng s* ph i có m t s các ki u các ph ng th c này v"i các tham s khác nhau, nh ng th c s không có s l a ch n nào. N u b n mu n có m t ng d ng PHP có th so sánh c v"i nhau, b n ph i s d ng hi u qu c s d li u và i u ó có ngh/a là các truy v n thông minh h n. V n v"i ví d này là nó quá rõ ràng. Thông th ng, các ki u c a v n n+1 hay n*n nh y c m h n nhi u. Và chúng ch xu t hi n khi ng i qu n tr% c s d li u ch y m t trình %nh hình truy v n trên h th ng c a b n khi nó có v n v hi u n ng. K t lu n Các c s d li u là các công c m nh và -- nh t t c các công c m nh m* -- chúng có th b% l m d ng n u b n không bi t cách s d ng chúng cho úng. Th thu t phía sau vi c xác %nh và gi i quy t các v n này là hi u rõ h n v công ngh bên d "i. Quá lâu, tôi ã nghe các nhà mã hóa logic nghi p v than th r(ng h không mu n ph i hi u c s d li u ho c mã SQL. H bao b c c s d li u trong các i t ng và t h'i t i sao hi u n ng l i kém n nh v y. H không nh n ra r(ng s hi u bi t SQL là nguyên t c c b n chuy n c s d li u t# m t hoàn c nh khó kh n thành m t ng minh m nh. N u b n s d ng c s d li u hàng ngày, nh ng SQL không phù h p v"i b n, hãy c The Art of SQL (Ngh thu t SQL). +ây là h "ng d)n thi t th c, c vi t rõ ràng nh n c nhi u nh t bên ngoài m t c s d li u. Tài nguyên H ct p The Art of SQL (Ngh thu t SQL), c a Stephane Faroult và Peter Robson, là m t cu n sách ph i c i v"i các l p trình viên, nh ng ng i s d ng c s d li u trong các ng d ng c a h . PHP.net là i m kh i u cho t t c m i th PHP. Tài li u PEAR DB là m t tài nguyên xu t s c. Tài li u các ch c n ng PDO có th a b n lên nt c trên PHP Data Objects (PDO- Các it ng d li u PHP). MySQL.org có tài li u h "ng d)n xu t s c v"i các ví d hi n th% cách s d ng m t c s d li u t t h n. Truy c p tài nguyên d án PHP c a developerWorks IBM tìm hi u thêm v PHP. Theo sát v"i các s ki n k! thu t và webcast c a developerWorks. Hãy xem các h i ngh%, các cu c tri n lãm th ng m i, webcast s p t"i và các s ki n trên th gi"i mà các nhà phát tri n mã ngu n m c a IBM ang quan tâm. Truy c p vào l/nh v c mã ngu n m c a developerWorks v"i các thông tin h "ng d)n r ng l"n, các công c và d án giúp b n phát tri n v"i các công ngh mã ngu n m và s d ng chúng v"i các s n ph,m c a IBM.
- N mv n chung v c s d li u trên PHP Page 10 of 10 + nghe các cu c ph'ng v n và th o lu n thú v% v"i các nhà phát tri n ph n m m, hãy xem developerWorks podcasts. L y s n ph m và công ngh + i m"i d án phát tri n ngu n m ti p theo c a c a b n v"i ph n m m dùng th IBM, có s0n t i xu ng ho c trên /a DVD. Th o lu n Dành tâm trí cho c ng ng developerWorks b(ng cách tham gia vào các blog c a developerWorks. ôi nét v tác gi Jack D. Herrington là k! s ph n m m cao c p v"i h n 20 n m kinh nghi m. Ông là tác gi c a ba cu n sách: Code Generation in Action, Podcasting Hacks và PHP Hacks. Ông c ng ã vi t h n 30 bài báo.

CÓ THỂ BẠN MUỐN DOWNLOAD
-
VLAN là gì? Làm thế nào để cấu hình một VLAN trên Switch Cisco?
6 p |
589 |
210
-
Photoshop CS 3: Thao tác với Layer P1
8 p |
404 |
186
-
Bài giảng Cơ sở dữ liệu - Nguyễn Quỳnh Chi
189 p |
272 |
51
-
Tất cả về công cụ gõ chữ trong Photoshop (Phần cuối)
10 p |
119 |
26
-
CakePHP Framework: Một số quy ước cơ bản
13 p |
114 |
25
-
Mười quy tắc then chốt về an toàn và bảo mật
20 p |
112 |
23
-
Giáo án14. Khái niệm về soạn thảo văn bản( 2 tiết )
6 p |
193 |
21
-
Bài 14: KHÁI NIỆM VỀ SOẠN THẢO VĂN BẢN (tt)
8 p |
241 |
17
-
Phân tích từng bước cơ bản trong thiết kế mạng không dây
3 p |
85 |
15
-
10 vấn đề cần biết trong việc điều khiển các máy trạm từ xa
7 p |
129 |
14
-
Khám phá về phần mềm diệt vi rút miễn phí được yêu thích nhất thế giới
12 p |
93 |
9
-
Bài giảng Hệ quản trị Cơ sở dữ liệu - Bài 7: Chỉ mục (Indexes)
72 p |
68 |
7
-
Bài giảng Thương mại điện tử (E-commerce): Chương 3 - GV. Đỗ Thị Nhâm
5 p |
25 |
7
-
Tip SEO cho người mới bắt đầu vào năm 2013
12 p |
57 |
6
-
10 mối đe dọa về bảo mật trên máy chủ ảo
22 p |
115 |
6
-
"Thay áo" World Cup 2010 cho Window 7
5 p |
73 |
4
-
BitLocker để mã hóa các ổ lưu trữ ngoài
12 p |
74 |
3


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
