ระบบประวัติ การซื้อ ขาย แบ่ง รวม ที่ดิน



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

24 ก.พ. 63 , 17:08:05
อ่าน 383 ครั้ง

thanapol.w

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



ก่อนอื่นต้องขออธิบายข้อมูลที่เก็บอยู่ครับ  ตารางนี้เก็บพื้นที่ที่ดิน
สีแดง = รหัสเจ้าของที่ดิน  Ref-> tbl_member
สีเหลือง = รหัสที่ดิน
สีฟ้า = เนื้อที่

โดยมีความต้องการให้ระบบมี
1. การขาย/โอน/แบ่ง  พื้นที่บางส่วนออก เช่นโอนให้ลูกบางส่วน แบ่งขายบางส่วน 

เช่น แปลง F100,F100-P1,5ไร่  แยกออก  ----> เป็น 2 แปลง  โดยแปลงที่แยกออกมาจะเปลี่ยนเจ้าของหรือไม่ก็ได้   และเนื้อที่ที่ถูกแยกออกจะต้องไม่เกิน 5 ไร่  ต้องการเก็บประมาณนี้ครับ  ไม่ทราบว่าต้องสร้างตารางความสัมพันธุ์อย่างไรให้สามารถ เช็คได้ว่า แปลงนั้นๆ เคยมีการแยก หรือรวมจากแปลงอะไร

2. การรวม  พื้นที่ คือการรวมพื้นที่ ตั้ง แต่ 2 แปลงขึ้นไป ให้เป็น 1 แปลง โดยเนื้อที่จะต้อง + กัน 


ระบบจะเหมือนกับการแบ่งแยก โฉนดที่ดินครับ แต่มีระบบ รวมที่ดิน

ถ้าไม่เข้าใจคำถามส่วนไหนถามเพิ่มได้ครับ
« แก้ไขครั้งสุดท้าย: 24 ก.พ. 63 , 18:35:47 โดย thanapol.w »

 

26 ก.พ. 63 , 02:50:45
ตอบกลับ #1

สันติสุข

: ระบบประวัติ การซื้อ ขาย แบ่ง รวม ที่ดิน
« ตอบกลับ #1 เมื่อ: 26 ก.พ. 63 , 02:50:45 »
ที่ดินเกิดธุรกรรม ทำให้ข้อมูลของที่ดินรหัสนั้นๆมีการเปลี่ยนแปลง และเนื่องจากต้องการเก็บประวัติ ดังนั้นรหัสของที่ดิน (FL_CODE) อย่างเดียว นำไปเป็น primary key ไม่ได้ ก็ต้องมีอีกฟิลด์ที่เป็นลำดับแสดงสถานะภาพของที่ดินรหัสนั้นร่วมอยู่ด้วย (ผมไม่แน่ใจว่าในนี้คือ FL_ID หรือเปล่า) เช่น F100 ลำดับที่ 1 เมื่อมีการเปลี่ยนแปลงอะไรไปก็จะเป็น F100 ลำดับที่ 2

ต่อไปที่ดินมีเกิดธุรกรรมคือ การแบ่ง ทำให้เกิดความสัมพันธ์ one-to-many ระหว่าง รหัสที่ดิน+ลำดับสถานะภาพนั้นๆ กับ รหัสที่ดิน(รหัสเดิมและ/หรือรหัสใหม่)+ลำดับสถานะภาพใหม่  ส่วนธุรกรรม การรวม ที่ดินก็ทำให้เกิดความสัมพันธ์ many-to-one  ระหว่าง รหัสที่ดิน+ลำดับสถานะภาพนั้นๆ กับ รหัสที่ดิน(รหัสเดิมและ/หรือรหัสใหม่)+ลำดับสถานะภาพใหม่  จะสังเกตเห็นว่ามันเป็นความสัมพันธ์แบบ many-to-many ระหว่างเทเบิล Tbl_Farmland กับตัวมันเอง ฟังดูแล้วอาจจะแปลกๆเพราะปกติจะเห็นแต่ความสัมพันธ์ระหว่างเทเบิลที่แตกต่างกัน แต่ความสัมพันธ์แบบนี้ก็มีครับ และเป็นกฏเกณฑ์เลยว่าเมื่อมี many-to-many ก็จะต้องสร้างเทเบิลกลางขึ้นมาใหม่อีกตัว และมีความสัมพันธ์กับเทเบิลเดิมแบบ many-to-one เทเบิลใหม่นี้คือเทเบิล "ความสัมพันธ์ของที่ดินจากธุรกรรม" ซึ่งน่าจะประกอบไปด้วย 6 ฟิลด์เป็นอย่างน้อย (สามารถใช้ทั้ง 6 ฟิลด์รวมเป็น primary key ได้) คือ
   - เลขที่ธุรกรรม
   - รหัสที่ดินก่อนธุรกรรม
   - ลำดับสถานะภาพของที่ดินในฟิลด์ที่ 2
   - รหัสที่ดินหลังธุรกรรม
   - ลำดับสถานะภาพของที่ดินในฟิลด์ที่ 4
   - ประเภทธุรกรรม (แบ่ง,รวม,โอน)
จากเทเบิลนี้ ก็สามารถเช็คได้ว่าที่ดินรหัสนั้นๆมีธุรกรรมอะไรเกิดขึ้น แต่ต้องเช็คทั้ง 2 ขาคือเช็คในฟิลด์ที่ 2 และ 4 ด้วยครับ

ส่วนการออกแบบนี้จะไปขัดอะไรกับของเดิมที่คุณได้ออกแบบไปแล้วหรือเปล่า ต้องไปเช็คเองนะครับ ผมเพียงอธิบายตามสิ่งที่ผมคิดว่ามันควรจะเป็นเท่านั้น
« แก้ไขครั้งสุดท้าย: 26 ก.พ. 63 , 02:58:46 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

26 ก.พ. 63 , 10:36:56
ตอบกลับ #2

thanapol.w

: ระบบประวัติ การซื้อ ขาย แบ่ง รวม ที่ดิน
« ตอบกลับ #2 เมื่อ: 26 ก.พ. 63 , 10:36:56 »


ที่ออกแบบดูประมาณนี้ถูกต้องไหมครับ

ตัวอย่างการแยกที่ดินออกเป็น 2 แปลง

PK  รหัสที่ดิน (ai) + ลำดับ(ค่าเริ่มต้น 0 ) หากเป็นที่ดินที่เพิ่มเข้าในระบบใหม่ จะมีค่าลำดับเป็น 0
« แก้ไขครั้งสุดท้าย: 26 ก.พ. 63 , 10:54:52 โดย thanapol.w »

 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

26 ก.พ. 63 , 11:31:47
ตอบกลับ #3

สันติสุข

: ระบบประวัติ การซื้อ ขาย แบ่ง รวม ที่ดิน
« ตอบกลับ #3 เมื่อ: 26 ก.พ. 63 , 11:31:47 »
ถูกครับ
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

26 ก.พ. 63 , 14:47:02
ตอบกลับ #4

thanapol.w

: ระบบประวัติ การซื้อ ขาย แบ่ง รวม ที่ดิน
« ตอบกลับ #4 เมื่อ: 26 ก.พ. 63 , 14:47:02 »
หากข้อมูลมีความสัมพันธุ์แบบนี้ มีแนวทางการสร้างฟอร์มอย่างไรครับ

การเพิ่มข้อมูล ถ้าใน กรณี แยกที่ดิน 
            - [tbl_ที่ดิน] rec เพิ่ม >1 rec
            - [ Tbl_ธุรกรรม ] Rec เพิ่ม เท่ากับที่ดินที่แยกออกมาใหม่
ลักษณะฟอร์มเท่าที่พอจะนึกออก  เลือกที่ดินที่ต้องการแยก และเลือกกว่าจะแยกออกเป็นกี่แปลง ระบุเนื้อที่แต่ละแปลง ระบุเจ้าของแปลง(ค่าเริ่มต้นเป็นคนเดิม)
           
การเพิ่มข้อมูล ใน กรณี รวมที่ดิน
           - [tbl_ที่ดิน] ที่ดินรวมเป็น 1 แปลง   เพิ่ม 1 rec
           - [ Tbl_ธุรกรรม ] เพิ่ม rec = จำนวนที่ดินที่จะรวม
ลักษณะฟอร์ม เลือกที่ดินที่ต้องการ  > กดยืนยัน > *กรณีรวมแปลงที่เจ้าของไม่ใช่คนเดียวกัน ให้เลือกเจ้าของแปลง
     

เท่ากับต้องเขียนโค๊ดบันทึกค่าหลาย Rec ในการคลิ๊กบันทึก 1 ครั้ง จะต้องเขียนอย่างไร
และการใช้ Ctl

จะมีเงื่อนใขเรื่องเนื้อที่ครับ  หากต้องการทราบว่าก่อน แยก 10 ไร่ ออกเป็น 2 แปลง เนื้อที่รวมของทั้ง 2 แปลงจะต้องไม่เกิน 10 ไร่

และการรวม มี 2 แปลง 5 ไร่ , 5 ไร่  เมื่อรวมเนื้อที่จะต้องเท่ากับ 10 ไร่

« แก้ไขครั้งสุดท้าย: 26 ก.พ. 63 , 14:52:26 โดย thanapol.w »

 

26 ก.พ. 63 , 16:15:00
ตอบกลับ #5

สันติสุข

: ระบบประวัติ การซื้อ ขาย แบ่ง รวม ที่ดิน
« ตอบกลับ #5 เมื่อ: 26 ก.พ. 63 , 16:15:00 »
อาจสร้าง 2 เทเบิลเพื่อเก็บข้อมูลชั่วคราวสำหรับ ที่ดินที่เลือกมาทำธุรกรรม และสำหรับ ป้อนที่ดินที่เกิดใหม่หลังจากธุรกรรม แล้วพอคลิก สร้างธุรกรรม ก็เอาข้อมูลเหล่านี้ไปสร้างลงเทเบิลจริงอีกที ส่วนการเขียนโค้ดสำหรับสร้างเรคอร์ด กรณีนี้มีหลายเรคอร์ดและหลายฟิลด์ แนะนำใช้ .AddNew, .Edit และ .Update สำหรับ Recordset ต่างๆที่เกี่ยวข้อง จะดูสะอาดตาดีกว่าเขียน SQL INSERT/UPDATE statement ครับ
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa, thanapol.w

27 ก.พ. 63 , 12:56:06
ตอบกลับ #6

thanapol.w

: ระบบประวัติ การซื้อ ขาย แบ่ง รวม ที่ดิน
« ตอบกลับ #6 เมื่อ: 27 ก.พ. 63 , 12:56:06 »
ขอตัวอย่างโค๊ดได้ไหมครับ

ทั้งแบบ recordset และ sql เลยนะครับ

 

27 ก.พ. 63 , 15:23:01
ตอบกลับ #7

สันติสุข

: ระบบประวัติ การซื้อ ขาย แบ่ง รวม ที่ดิน
« ตอบกลับ #7 เมื่อ: 27 ก.พ. 63 , 15:23:01 »
ไปช่องค้นหา แล้วป้อน addnew และ sql insert ก็จะเห็นเยอะแยะเลยครับ
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 


บอร์ดเรียนรู้ Access สำหรับคนไทย