วันเสาร์ที่ 25 มกราคม พ.ศ. 2557

Mysql CASCADE

 ความหมายของ CASCADE นั้นคือ เป็นกฎของ Constraints ในการทำตอน DELETE หรือ UPDATE คือเมื่อมีการ Modify ใด ๆ ในตาราง หลัก ตารางอ้างอิงจะเปลี่ยนตาม FK ที่อ้างอิงกับตารางหลักอยู่ คือเปลี่ยนค่า PK ของตารางหลัก ฟิวส์ที่เป็น FK กับตารางหลักอยู่  จะเปลี่ยนไปตามที่ตารางหลักเปลี่ยนไปคือ

- แก้ไขที่ตารางหลัก ตารางอ้างอิงจะเปลี่ยนไปตามที่ตารางหลักเปลี่ยนแปลง ไป

- ลบที่ตารางหลัก ตารางอ้างอิงจะถูกลบไปด้วย ตามรหัสที่อ้างอิงอยู่

        --------------------------------------------------------------------------------------

                 ในการออกแบบฐานข้อมูลถือว่ามีความสำคัญมาก  เพราะจากประสบการณ์ของอันน้อยนิดของผมนั้นคิดว่าในอนาคตต้องมีการแก้ไข  หรือปรับเปลี่ยนเป็นเรื่องธรมมดา   แต่ถ้าหาก  Database นั้นถูกออกแบบให้อยู่ในมาตรฐาน การปรับเปลี่ยนก็เป็นเรื่องง่่าย ๆ  แต่ถ้าระหว่างตาราง relationship ไม่มีความสัมพันธ์กันดีพออาจจะเกิดปัญหาตามก็เป็นได้  จากเรื่องง่ายก็กลายเป็นงานเข้าก็เป็นได้ ดังนั้นผมจึงมี Trip เล็กๆ น้อยๆมาฝากกัน

  ขอยกตัวอย่างแค่ 2 ตารางนะครับ
  - CustomerID  = PK  (ตาราง Customer)
-   CustomerID   = FK  (ตาราง Audit )

-------------------------------------------------------------------------------
CREATE TABLE `customer` (
  `CustomerID` varchar(4) NOT NULL,
  `Name` varchar(50) NOT NULL,
  `Email` varchar(50) NOT NULL,
  `CountryCode` varchar(2) NOT NULL,
  `Budget` double NOT NULL,
  `Used` double NOT NULL,
  PRIMARY KEY (`CustomerID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

----------------------------------------------------------------------------------------
                  ตอนสร้างตาราง Audit  ให้ไปเพิ่มคำสั่งตามภาพนะครับ

จากภาพจะสังเกตุว่าเราเขียนคำสั่งฝั่งตาราง Audit ที่เป็น   FK นะครับเพื่อให้ตัวข้อมูลในตารางตัวมัเองเกิดการเปลี่ยนตามตาราท่ี่เป็น PK
            ก็เห็นน้อๆงหลายคนถามเข้ามานะครับ ว่าลองเขียนแล้วข้อมูลตารางรอง ไม่ยอมเปลี่ยนตามตารางหลักเลย   ...อืม..ลีมไปมีอีกหนึ่งวิธีนะครับง่ายเหมือนกัน   ใช้โปรแกรม Navicat for MySQL
  ลองทดสอบทำตามภาพนะครับ    
   1. ก่อนอื่นสร้างตารางขึ้นมาก่อน 2   ตารางคุณสมบัติตามภาพด้านบน
   2. คลิีกขวาที่ตาราง Audit  เลือก Design Table


3. กำหนด  Index



4.  กำหนด Foreign Keys



จากนั้นมาทดสอบกันครับ






------------------------------------------------------------------------------------------------------------


  ***** ไม่มีปุ่ม Save กด  Ctrl+s นะครับ





ลองๆ ทำดูนะครับผิดพลาดก็ขออภัยครับ

วันศุกร์ที่ 24 มกราคม พ.ศ. 2557

ห่วยขั้นเทพ



                                เป็นอีกหนึ่งโปรแกรม ของห้อง lab ที่ผมหัดเป็นโปรแกรมได้เป็นตัวที่สอง  ในการเขียนโปรแกรมเลยก็ว่าได้  ด้วยความที่อยากออกโปรแกรมสู่สายตาผู้ใช้งานเร็วเกินไปจนทำให้  การออกแบบ ออกมาห่วยมาก  ใช้งานได้แค่เพิ่มข้อมูล ,ลบข้อมูล และแก้ไขข้อมูลได้เท่านั้นเอง

วันนี้ 25/1/57 ผมได้ทำการออกแบบโครงสร้างโปรแกรมใหม่ทั้งหมด ป้องกันการห่วยของผมเอง...ด้วย
นับเป็นก้าวแรก ของการขยับขึ้นมาในระดับ Advance  ของผมเลยก็ว่าได้เพราะด้วยความไม่รู้อะไรเลย ผมต้องฝึกฝนตนเองในระดับ Basic 1  ปีแรกก่อนให้พื้นฐานแน่นก่อนค่อยก้าวเดิน ตามรูปแบบของผมนั่นเอง

                              มีการปรับแต่ง Ribbon bar  ให้มีความเด่นขึ้นกว่ารุ่นก่อ                                                                         สำหรับหน้าจอแรก เป็นการแจ้งเตือนสถิติการรับผล Lab แยกเป็นแผนก
                             



มีแบบฟร์อมแสดงข้อมูลที่ดูเรียบงาย ใช้งานง่าย แต่มี Style



                                ระบบรายงาน  มีการใช้งาน funcion มาช่วยในการ Quety ข้อมูล
                                ในฟร์อม




อีกไม่เกิน 2-3 วันเสร็จแล้วครับ






โปรแกรมพิมพ์รายการอาหาร SP-FOOD2014



                                                      SP-FOOD2014  Metro form
               

           
 เป็นอีกหนึ่ง Project  ที่พึ่งเสร็จไปประมาณวันที่  18 ม.ค.57 ที่ผ่านมาเป็น Project ที่ทำให้ผมอดหลับ
 อดนอน  อยู่เป็นเดือนเหมือนกัน รูปแบบการเขียน Style win8 application  นับว่าเป็นตัวแรกเลยที่ทำออกมาอย่างสุดฝีมือเลยก็ว่า  
      ส่วน Project  นี้ก็ได้ไอเดียมาจากโปรแกรมความเสี่ยง 1.5  ที่ผมได้พัฒนาไว้ก่อนหน้า  ช่วงนั้นยังเขียน Style Metro  ยังไม่เลยและต่อมาก็ได้พัฒนาโปรแกรมมีความความเป็น Metro style อย่างเต็มรูปแบบ    และรวมถึงได้เริ่มทำเป็น  File Setup  เป็นครั้งแรกอีกด้วย   ทดสอบได้ตาม Link
 http://www.4shared.com/rar/5L8feXvqce/SPFOOD2014_setup.html?

                                       


- มีระบบรายการพิมพ์ เชื่อมต่อกับเครื่องพิมพ์ Epon TM-T81
- เชื่อมต่อฐานข้อมูล mysql
- มีระบบรายงาน 36 รายงาน

 เป็นตัวต้นแบบในการพัฒนาอีกหลายๆโปรแกรม 
 สำหรับใครสนใจผมอัพ vdoไว้ที่  youtube ตามลิงค์  มีตัวอย่างแจก code ด้วย
http://www.youtube.com/watch?v=CT3y4DgWNaw#t=24 


กว่าจะเขียนโปรแกรมผ่านแต่ละตัว ไม่ใช่เรื่อวบังเอิญเลย และไม่ใช่ไเรื่องง่าย..เลย






สำหรับใครสนใจผมผมอัพ vdoไว้ที่  youtube ตามลิงค์ค์  มีตัวอย่างแจก code ด้วย

http://www.youtube.com/watch?v=CT3y4DgWNaw#t=24 





โปรแกรมความเสียง 1.5



โปรแกรมความเสี่ยง 1.5
                                                               โปรแกรมความเสี่ยง 1.5
                       - Main menu
                       พึ่งเขียนเสร็จเดือน ธันวาคม 56    ผมยังออกแบบได้ไม่ดีพอในเรื่อง database และมีหลาย
                        funcion   ที่ยังไม่สมบูรณ์แบบ  คาดว่าคงอีกประมาณ 2-3 version  คงตอบโจทย์การใช้                               งานมากกว่านี้


           
                                                                       -   ส่วนบันทึกข้อมูล


                                - มีระบบรายงาน 25 รายงาน




โปรแกรมเมอร์ สุพัฒน์ อน้นต์



      บันทึกลับโปรแกรมเมอร์ ตอนที่ 1  ถนนสู่การเป็นโปรแกรมเมอร์  

ผมชื่อ สุพัฒน์ อนันต์ เกิดที่หนองบัวลำภู  ผมอยากจะแบ่งปันและแชร์ความรู้อันน้อยนิด ให้กับน้องๆ หรือว่าคนที่กำลังติดตามผลงานของผมอยู่  โดยเฉพาะเด็กหนองบัวลำภู อยากเห็นคนบ้านเราสร้างชื่อเสียงด้านการเขียนโปรแกรมกัน....
      กฏข้อที่ 1   programming language  ก้าวแรกบนถนนโปรแกรมเมอร์นั้น  เราต้องเลือก 1 ภาษาก่อนเสมอหมายความว่า ในการเริ่มหัดเขียนโปรแกรมให้เราหาภาษาที่เรามีความถนัดทีสุด

       ผมจะแนะนำจากประสบการอันน้อยนิดนะครับ
·      Java , JavaScript   ,jQuery  ,jQueryMobile   ,AJAX   ,JSON   ,PHP   ,ASP.NET 
 ASP  ,vb    ,c  ,c++  ,pascal  ,delphi  
       ผมยกตัวอย่างภาษาที่เฉพาะเป็นที่นิยมนะครับ ทำไมนั่นหรือ...  ?   3 ปีก่อนผมไปเน้น html + css เยอะเกินไปจนไม่รู้จักร  php  และ  mysql  เอาแค่ว่าสร้า website ก็สุดยอดแล้วต่อมาผมถึงรู้ว่าเว็บไซต์ที่ผมคิดว่าสุดยอดและภูมใจเหลือเกิน  มันไม่ใช่เป็นการเขียนโปรแกรมเลยสักนิด เพราะว่าเมื่อก่อนคิดว่า แค่เริ่มเขียน code html ได้ก็เริ่มเป็นโปรแกรมเมอร์แล้ว    นั่นคือที่มาของการหางานไม่ได้เลยในเวลาต่อมา.....เพราะว่าตอนกรอกใบสมัครทุกที่นะครับขอเน้น เขาจะถามว่าภาษาที่เราถนัดในการพัฒนาโปรแกรมคือภาษาอะไร (ตำแหน่ง admin) ถ้าไปตอบ html ,photoshop ,dreamweaver ,office2027  คงก็ตกงานเหมือนผม สมัยก่อน..แน่ๆ
           ในการเขียนโปรแกรมนั้น    mysql  จะมีบทบาทในด้านเก็บข้อมูล  ดังนั้นก่อนพัฒนาโปรแกรมต้องศึกษาพื้นฐานโครงสร้างทางภาษา   mysql  ก่อนจากนั่นค่อยไปหาภาษาอื่นอีก 1 ภาษา ยกตัวอย่าง
  Java +  mysql  ,JavaScript  + mysql   , PHP + mysql

--------------------------------------------------------------------------------------------------------
        กฏข้อที่ 2    level  Programing  คือ การใล่ลำดับนั่นเอง ขอยกตัวอย่างนะครับ  (ผมกำหนดเอง)
                               ( 'คุณต้องรู้จักจุดที่ตัวคุณเองยืนอยู่ซะก่อนว่า ว่าเราอยู่ระดับไหนมันเหมือนกับการหันหัว                                           หันหัวเรือให้ถูกทิศทางนั่นเอง ' ) 
  - User              =    คนที่ใช้งานคอมพิวเตอร์ทั่วไป หรือใช้โครตเก่ง เป็นได้แค่  User
  -  admin           =    คนที่ทำหน้าที่ซ่อมคอม,ดูแลรักษาหน้าจอ,เดินสาย Lan บ้าง,เขียน web บ้าง, ดึง                                     ข้อมูลบ้าง ,ถ่ายเอกสาร , ชงกาแฟบ้างเป็นได้แค่   admin   
  - developer      =    ไม่ค่อยซ่อมคอมฯ นานๆซ่อมที เริ่มมีผลงานจากเขียนโปรแกรม php , javaScript                                      ,jQuery  (ส่วนใหญ่) ส่วนใหญ่ดึงข้อมูลผ่าน Web หรือเขียนโปรแกรมผ่านเว็บเป็น         
  - programmer   =    เป็นคนที่เขียนโปรแกรมอย่างเดียว  ส่วนใหญ่ไม่ค่อยมีการต่องานจากใคร เริ่มเก่ง                                    แล้ว  ขอมาเขียนได้หมดเป็นเทพแล้วต้องใช้เวลาและการฝึกฝนค่อนข้างนาน
                               และบางคนที่เก่งหน่อยก็ข้าม ไปเขียน  microcontroller   เขียนโปรแกรมควบคุม                                       เครื่องจักร ก็ประมาณนั้น  (เป้าหมายสูงสุดผมเลย)
  -    S/A           =      ทำหน้าที่วิเคราะห์และออกแบบระบบ ก่อนส่งงานให้โปรแกรมแกรมเมอร์อีกที
                                ส่วนตำแหน่ง sa  คื่อระดับสุดยอดแล้ว นั่งคิดและออกแบบอย่างเดียว
  
****  หลังจากพูดมาตั้งนาน  รู้หรือยังเราอยู่ระดับไหนกัน.....?
---------------------------------------------------------------------------------------------------------
      กฏข้อที่ 3    Freelance  Programing    ข้อนี้ตัดสินชะตากรรมทั้งหมดเลย  ทำไมหรือ..... ?
                            คือ การฝึกฝนตนเองอย่างต่อเนื่อง และมีระเบียบในการใช้ชีวิต รวมถึงการศึกษาวิธีการเขียน  , การนำ funcion  มาทดสอบเขียนในตามแบบหรือเริ่มมี Style  การเขียนเป็นแบบของตัวเอง
จนถึงฝึกฝนจนชำนาญ จนกลายเป็นการตกผลึกในภาษานั้นๆ  นั่นเอง

**** ถ้าคุณไม่  Freelanc ก็ประสบความสำเร็จเหมือนกันครับแต่คุณจะช้ามากๆ และกินเวลาไปอีกหลายปีบางทีเขียน php มา 5 ปียังไม่เก่งเลย ลืม funcion connect  บ้าง 
        select ข้อมูล ไม่ออกบ้าง  นั่นหมายถึง มันไม่มีใช่  Style การเขียนของคุณ  ทำไม่นั่นหรือเพราะว่าคุณยังไม่ตกผลึกนั่นเอง ถ้าตกผลึกคุณไม่ต้องจำแล้วเพราะชำนาญขั่นเทพ...แล้วครับ

ลองดูคลิปนี้ครับ เป็นอีกหนึ่งแรงบันดาลใจผมเลย

                                 อ เฉลิมชัย [ ศิลปินไส้แห้ง i AM TV ]

                      http://www.youtube.com/watch?v=s-g89WcO6DQ