บังคับใช้ Referential Integrity ด้วยตารางที่เชื่อมโยง


0

ขณะนี้ฉันกำลังสร้างและบำรุงรักษาฐานข้อมูล MS Access จำนวนหนึ่งที่มีจุดประสงค์เพื่อแทนที่ระบบเอกสารกระดาษที่ฉันทำงานอยู่ เป็นส่วนหนึ่งของงานนี้ฉันกำลังใช้การรวมชื่อผู้ใช้ / รหัสผ่านแบบง่ายแทนลายเซ็นบนเอกสารและต้องการเก็บชื่อผู้ใช้ / รหัสผ่านร่วมกันระหว่างเอกสารทั้งหมดด้วยเหตุนี้ฉันจึงสร้างฐานข้อมูลแยกต่างหากที่มีเพียงข้อมูลผู้ใช้ มันเป็นเรื่องธรรมดาสำหรับเอกสารต่าง ๆ ทั้งหมด

อย่างไรก็ตามสำหรับแต่ละฐานข้อมูลเอกสารฉันต้องการมีตาราง 'สิทธิ์' ซึ่งมีชุดของฟิลด์ใช่ / ไม่ใช่ที่กำหนดว่าสิทธิ์ใดที่ผู้ใช้เกี่ยวข้องกับเอกสารนั้นแน่นอนว่าฉันต้องการรักษาความสมบูรณ์ของการอ้างอิงระหว่างตารางสิทธิ์ และตารางผู้ใช้ ฐานข้อมูลทั้งหมดที่สงสัยจะถูกเก็บไว้ในไดรฟ์ที่ใช้ร่วมกัน

ตอนแรกฉันคิดว่าใน AnythingDoc.mdb ฉันสามารถเชื่อมโยงไปยังตาราง tblUsers ใน Users.mdb แล้วสร้างความสัมพันธ์แบบหนึ่งต่อหนึ่งระหว่างฟิลด์ชื่อผู้ใช้ของ tblUsers และ tblPermissions แต่ดูเหมือนว่าฉันไม่สามารถบังคับใช้การอ้างอิงได้ ความสมบูรณ์เมื่อฉันสร้างความสัมพันธ์กับตารางที่เชื่อมโยง

มีวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่? ฉันเปิดให้โซลูชั่นที่เกี่ยวข้องกับ VBA แต่คิดว่าฉันจะถามที่นี่มากกว่า StackOverflow เนื่องจากไม่ใช่คำถามการเขียนโปรแกรมโดยเฉพาะ

คำตอบ:


0

โซลูชันที่ฉันใช้อยู่ในปัจจุบัน:

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

Display Control: Combo Box
Row Source Type: Table/Query
Row Source: SELECT Username FROM tblUsers;
Limit To List: Yes

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


0

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.