Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > จะเก็บข้อมูลอย่างไรดี เมื่อเรียกข้อมูลย้อนหลัง จะได้ไม่แสดงผลคลาดเคลื่อน



 

จะเก็บข้อมูลอย่างไรดี เมื่อเรียกข้อมูลย้อนหลัง จะได้ไม่แสดงผลคลาดเคลื่อน

 



Topic : 096256



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger



เหตุการณ์คือ เมื่อบันทึกข้อมูลไปแล้วว่า
ได้ทำการซื้อขายกับ นายสมบัติ สมศักดิ์ศรี (นามสมมติ) ในวันที่ 2012-07-25

เลขที่เอกสารคือ 255507001
เลขที่ลูกค้าคือ CR0005

สองเดือนต่อมา นายสมบัติ ได้ไปเปลี่ยนชื่อเป็น นายสมควร สมศักดิ์ศรี

เวลาผ่านไป วันที่ 2013-06-07
เจ้าของร้านต้องการดูประวัติย้อนหลังของเอกสารเลขที่ 255507001 ปรากฏว่าชื่อไม่ตรงกัน

เพราะในฐานข้อมูลการขายเก็บรหัส CR0005 อย่างเดียวตอนแสดงเลยแสดงเป็นชื่อใหม่ที่มีการเปลี่ยนชื่อแล้ว


ดังนั้นผมจึงแก้ปัญหาโดยการเพิ่มฟิลด์ชื่อ ไว้ในฐานข้อมูลขายด้วย
แต่คำถามมีอยู่ว่า แล้วถ้าเกิดมีข้อมูลที่อาจจะเปลี่ยนแปลงหลายฟิลด์มาก

จากที่เก็บแต่ไอดี ก็ต้องเปลี่ยนมาเก็บเป็นชื่อของไอดีนั้นทั้งหมดเลยหรือไม่

หรือจะใช้วิธีปิดการใช้งานของไอดีอ้างอิงเดิม แล้วสร้างไอดีใหม่ไปเรื่อยๆ
เช่น ปิดไอดี CR0005 แล้วก๊อปปี้สร้างใหม่เป็น CR56005 แต่ปัญหาก็คือตอนเรียกรายงานก็กระจัดกระจาย

แต่ถ้าใช้วิธีเพิ่มฟิลด์เก็บชื่อด้วยไอดีอ้างอิงด้วย ถ้ารหัสอ้างอิงมี 10-20ฟิลด์ ฐานข้อมูลจะใหญ่เกินไปหรือไม่??



Tag : PHP, MySQL, Report Others







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-06-07 15:10:17 By : {Cyberman} View : 816 Reply : 4
 

 

No. 1



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

เก็บเฉพาะ "ข้อมูลที่อาจจะมีการเปลี่ยนแปลง" ครับ
ขึ้นอยู่กับชนิดของข้อมูลครับ
อย่างตารางการขายเนี่ย มันก็คล้ายๆ ใบสั่งซื้อใช่มั้ยครับ
ในระบบส่วนใหญ่ที่ผมเคยเห็น แม้จะอ้างอิง ID สมาชิกเป็นปกติอยู่แล้ว
จะมีข้อมูลชื่อ ที่อยู่ อยู่ในนั้นด้วย คือ copy ข้อมูล ณ เวลานั้นมานั่นล่ะครับ
เพราะข้อมูลลักษณะนี้ควรจะเป็น "ข้อมูล ณ เวลานั้น" ครับ
มีประโยชน์ในการค้นหาด้วย ทำให้ผู้ใช้ค้นหาเจอหมด ไม่ว่าข้อมูลปัจจุบันจะเปลี่ยนไปก็ตาม






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-07 15:46:39 By : cookiephp
 


 

No. 2



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

Quote:
ข้อมูลที่อาจจะมีการเปลี่ยนแปลง


ในส่วนนี้คือถ้ายังไม่เปลี่ยนข้อมูลหลักเลย เราก็จะไม่เก็บชื่อของรหัสอ้างอิงนั้นในเทเบิลรายงาน
แต่ถ้าเมื่อใดที่ข้อมูลหลักมีการเปลี่ยนแปลง ก็จำเป็นจะต้องเพิ่มฟิลด์เข้าไปในเทเบิลรายงานด้วย

ดังนั้น ถ้าเทเบิล หมวดหมู่ สินค้าไม่เคยถูกเปลี่ยนชื่อ หรือมีแต่เพิ่มใหม่จะไม่มีการเปลี่ยนแปลง
เราก็ใช้เก็บเพียงรหัสอ้างอิงหมวดหมู่สินค้าไว้ในในเทเบิลรายงานก็พอ ไม่ต้องมีฟิลด์ชื่อหมวดหมู่ก็ได้

แต่ถ้าเมื่อไหร่ที่มีการเปลี่ยนชื่อจากหมวด "มือถือ" เป็น "โทรศัพท์เคลื่อนที่"
เราก็จะต้องเพิ่มฟิลด์เก็บชื่อเข้าไปในเทเบิลรายงานด้วย

และอัพเดตรายชื่อย้อนหลัง นับจากวันที่เริ่มเปลี่ยนแปลง ถูกต้องรึเปล่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-07 16:19:26 By : {Cyberman}
 

 

No. 3



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

เก็บไปตั้งแต่แรกเลยครับ ไม่ต้องยุ่งยากขนาดนั้น

ถ้าข้อมูลปัจจุบันเปลี่ยนชื่อ รายงานจะยังเป็นชื่อ ณ เวลาที่รายงานถูกสร้างไงครับ
แต่ ID ก็ยังคงอยู่ ก็ยังคงเชื่อมไปหาข้อมูลที่เป็นปัจจุบันได้ แต่ก็มีข้อมูลที่เป็นอดีตอยู่ด้วย
อาจจะเปลืองพื้นที่สักนิด แต่มันแก้ปัญหาที่คุณยกมาตอนต้นได้ครับ คือค้นหายังไงก็เจอ และไม่งง
อาจจะเพิ่มส่วนของการแสดงผลไปว่า ถ้าชื่อในรายงานไม่ตรงกับชื่อปัจจุบัน ก็ให้แสดงแบบนี้

นายสมบัติ สมศักดิ์ศรี (นายสมควร สมศักดิ์ศรี)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-07 16:27:32 By : cookiephp
 


 

No. 4



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

ตอนนี้กำลังหวั่นๆ กับการเรียกดูข้อมูลย้อนหลัง เพราะใช้แต่รหัสอ้างอิง ไม่ได้เก็บชื่อมาด้วยครับ

เลยคิดว่าตอนนี้จะไม่แก้ไข พวกข้อมูลหลัก จะปิดการใช้งาน แล้วเพิ่มใหม่แทน
เพราะรายงานค่อนข้างจะเยอะ คงต้องค่อยๆ ปรับโค๊ดไปเป็นกรณีๆ ไปครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-07 17:04:21 By : {Cyberman}
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะเก็บข้อมูลอย่างไรดี เมื่อเรียกข้อมูลย้อนหลัง จะได้ไม่แสดงผลคลาดเคลื่อน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่