การกำหนดความสัมพันธ์ระหว่างตารางในฐานข้อมูล Microsoft Access

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 304466 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ฝึกหัด: ต้องทราบของอินเทอร์เฟซสำหรับผู้ใช้บนคอมพิวเตอร์เครื่องเดียวที่ผู้ใช้

บทความนี้สามารถใช้ได้เฉพาะกับฐานข้อมูล Microsoft Access (.mdb หรือ.accdb)
สำหรับรุ่น Microsoft Access 2000 ของบทความนี้ ดู304467.
สำหรับข้อมูล Microsoft Access 97 รุ่นของบทความนี้ ดู304468.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายวิธีการกำหนดความสัมพันธ์ในฐานข้อมูล Microsoft Access รวมหัวข้อต่อไปนี้:
  • สิ่งที่มีความสัมพันธ์ของตาราง
  • ชนิดของความสัมพันธ์ของตาราง
    • ความสัมพันธ์แบบหนึ่งไปยังหลาย
    • ความสัมพันธ์ของหลายไปยังหลาย
    • ความสัมพันธ์ one-To-One

  • วิธีการกำหนดความสัมพันธ์ระหว่างตาราง
    • วิธีการกำหนดความสัมพันธ์แบบหนึ่งไปยังหลาย หรือ One-To-One
    • วิธีการกำหนดหลายเมื่อต้องการหลายความสัมพันธ์

  • ความสอดคล้องของ referential
  • การปรับปรุง cascading และลบ
  • ชนิดการเข้าร่วม

ข้อมูลเพิ่มเติม

สิ่งที่มีความสัมพันธ์ของตาราง

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

โซลูชันที่ดีกว่ามีการ เก็บข้อมูลของผู้เผยแพร่เพียงครั้งเดียวในตารางแยกจากกัน ผู้เผยแพร่ คุณจะย้ายตัวชี้ในตารางชื่อเรื่องที่อ้างอิงที่รายการในตารางผู้เผยแพร่แล้ว

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

ชนิดของความสัมพันธ์ของตาราง

ความสัมพันธ์ที่ทำงานได้ โดยตรงกับข้อมูลในคอลัมน์คีย์ มักคอลัมน์ที่ มีชื่อเดียวกันในตารางทั้งสอง ในกรณีส่วนใหญ่ ความสัมพันธ์ที่ตรงกับคีย์หลักจากตารางหนึ่ง ซึ่งแสดงรหัสเฉพาะสำหรับแต่ละแถว ด้วยรายการในคีย์ต่างประเทศในอีกตารางหนึ่ง ตัวอย่างเช่น ขายสามารถเชื่อมโยงกับชื่อเรื่องเฉพาะที่ขาย โดยการสร้างความสัมพันธ์ระหว่างคอลัมน์ title_id ในตารางชื่อเรื่อง (คีย์หลัก) และคอลัมน์ title_id ในตารางการขาย (คีย์ภายนอก)

มีอยู่สามชนิดของความสัมพันธ์ระหว่างตาราง ชนิดของความสัมพันธ์ที่สร้างขึ้นขึ้นอยู่กับวิธีกำหนดคอลัมน์ที่เกี่ยวข้อง

ความสัมพันธ์แบบหนึ่งไปยังหลาย

ความสัมพันธ์แบบหนึ่งไปยังหลายเป็นชนิดการที่พบโดยทั่วไปของความสัมพันธ์ ในชนิดนี้ของความสัมพันธ์ แถวในตารางสามารถมีหลายแถวตรงกันในตาราง B แต่แถวในตาราง B สามารถมีได้เพียงหนึ่งแถวตรงกันในตาราง A. ตัวอย่างเช่น ตารางผู้เผยแพร่และชื่อเรื่องมีความสัมพันธ์แบบหนึ่งไปยังหลาย: แต่ละผู้เผยแพร่สร้างชื่อเรื่องต่าง ๆ แต่ละชื่อเรื่องที่มาจากผู้เผยแพร่เดียวเท่านั้น

มีสร้างความสัมพันธ์แบบหนึ่งไปยังหลายถ้าเดียวคอลัมน์ที่เกี่ยวข้องอย่างใดอย่างหนึ่งคือ คีย์หลัก หรือมีข้อจำกัดที่ไม่ซ้ำกัน

ในการเข้าถึง ด้านคีย์หลักของความสัมพันธ์แบบหนึ่งไปยังหลาย denoted ด้วยสัญลักษณ์คีย์ ด้านข้างแป้นต่างประเทศของความสัมพันธ์ถูก denoted โดยมีสัญลักษณ์ infinity

ความสัมพันธ์ของหลายไปยังหลาย

ในความสัมพันธ์ หลายไปยังหลายแถวในตาราง A สามารถมีหลายแถวที่ตรงกันในตาราง B และในทางกลับกันได้ คุณสามารถสร้างความสัมพันธ์แบบ โดยการกำหนดตารางสาม เรียกว่าตารางเชื่อมต่อ คีย์หลักซึ่งประกอบด้วยคีย์ภายนอกจากตาราง A และตาราง B. ตัวอย่างเช่น ตารางผู้สร้างและตารางชื่อเรื่องมีความสัมพันธ์หลายไปยังหลายที่กำหนด โดยความสัมพันธ์แบบหนึ่งไปยังหลายจากแต่ละตารางเหล่านี้ไปยังตาราง TitleAuthors คีย์หลักของตาราง TitleAuthors คือ ชุดของคอลัมน์ au_id (คีย์หลักของตารางผู้สร้าง) และคอลัมน์ title_id (ชื่อเรื่องคีย์หลักของของตาราง)

ความสัมพันธ์ one-To-One

In a one-to-one relationship, a row in table A can have no more than one matching row in table B, and vice versa. A one-to-one relationship is created if both of the related columns are primary keys or have unique constraints.

This type of relationship is not common because most information related in this way would be all in one table. You might use a one-to-one relationship to:
  • Divide a table with many columns.
  • Isolate part of a table for security reasons.
  • Store data that is short-lived and could be easily deleted by simply deleting the table.
  • Store information that applies only to a subset of the main table.
In Access, the primary key side of a one-to-one relationship is denoted by a key symbol. The foreign key side is also denoted by a key symbol.

How to Define Relationships Between Tables

When you create a relationship between tables, the related fields do not have to have the same names. However, related fields must have the same data type unless the primary key field is an AutoNumber field. You can match an AutoNumber field with a Number field only if thefieldSizeproperty of both of the matching fields is the same. For example, you can match an AutoNumber field and a Number field if thefieldSizeproperty of both fields is Long Integer. Even when both matching fields are Number fields, they must have the samefieldSizeproperty setting.

How to Define a One-To-Many or One-To-One Relationships

To create a one-to-many or a one-to-one relationship, follow these steps:
  1. Close any tables that you have open. You cannot create or modify relationships between open tables.
  2. In Access 2002 or in Access 2003, follow these steps:
    1. Press F11 to switch to the Database window.
    2. ในการเครื่องมือเมนู คลิกความสัมพันธ์.
    ในการเข้าถึง 2007 คลิกความสัมพันธ์ในการแสดง/ซ่อนจัดกลุ่มในการDatabase Toolsแท็บ
  3. If you have not yet defined any relationships in your database, theแสดงตารางกล่องโต้ตอบจะปรากฏขึ้นโดยอัตโนมัติ If you want to add the tables that you want to relate, but theแสดงตารางdialog box is not displayed, clickแสดงตารางในการความสัมพันธ์เมนู
  4. Double-click the names of the tables that you want to relate, and then close theแสดงตารางกล่องโต้ตอบ To create a relationship between a table and itself, add that table twice.
  5. Drag the field that you want to relate from one table to the related field in the other table. To drag multiple fields, press CTRL, click each field, and then drag them.

    In most cases, you drag the primary key field (which is displayed in bold text) from one table to a similar field (often with the same name) called the foreign key in the other table.
  6. กระบวนการแก้ไขความสัมพันธ์กล่องโต้ตอบจะปรากฏขึ้น Ensure that the field names displayed in the two columns are correct. You can change them if necessary.

    Set the relationship options if necessary. If you need information about a specific item in theแก้ไขความสัมพันธ์dialog box, click the question mark button, and then click the item. These options will be explained in detail later in this article.
  7. คลิกสร้างto create the relationship.
  8. Repeat steps 5 through 8 for each pair of tables that you want to relate.

    When you close theแก้ไขความสัมพันธ์dialog box, Microsoft Access asks if you want to save the layout. Whether you save the layout or not, the relationships that you create are saved in the database.

    หมายเหตุ::You can create relationships in queries as well as tables. However, referential integrity is not enforced with queries.

How to Define a Many-To-Many Relationships

To create a many-to-many relationship, follow these steps:
  1. Create the two tables that will have a many-to-many relationship.
  2. สร้างตารางสาม เรียกการเชื่อมต่อตาราง แล้ว เพิ่มการเชื่อมต่อตารางใหม่ฟิลด์ต่าง ๆ ด้วยข้อกำหนดเดียวกันเป็นเขตข้อมูลคีย์หลักจากแต่ละสองตารางอื่น ๆ ในตารางเชื่อมต่อ ฟิลด์คีย์หลักทำงานเป็นคีย์ต่างประเทศ คุณสามารถเพิ่มเขตข้อมูลอื่น ๆ ไปยังตารางเชื่อมต่อ เช่นเดียวกับที่คุณสามารถไปที่ตารางอื่น
  3. ในตารางเชื่อมต่อ กำหนดคีย์หลักจะรวมเขตข้อมูลคีย์หลักจากอื่นสองตาราง ตัวอย่างเช่น ใน TitleAuthors การเชื่อมต่อตาราง คีย์หลักจะถูกทำขึ้น OrderID และ ProductID ฟิลด์

    หมายเหตุ:: การสร้างคีย์หลัก ดำเนินการดังต่อไปนี้:
    1. เปิดตารางในมุมมองออกแบบ
    2. เลือกเขตข้อมูลหรือเขตข้อมูลที่คุณต้องการกำหนดเป็นคีย์หลัก เมื่อต้องการเลือกฟิลด์หนึ่งฟิลด์ คลิกตัวเลือกแถวสำหรับเขตข้อมูลที่ต้องการ

      เมื่อต้องการเลือกเขตข้อมูลหลาย กดแป้น CTRL ค้าง และจากนั้น คลิกตัวเลือกแถวสำหรับแต่ละฟิลด์
    3. ใน Access 2002 หรือ Access 2003 คลิกคีย์หลักบนแถบเครื่องมือ

      ในการเข้าถึง 2007 คลิกคีย์หลักในการเครื่องมือจัดกลุ่มในการออกแบบแท็บ

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

ความสอดคล้องของ referential

ความสมบูรณ์ของ referential คือ ระบบของกฎที่ใช้ Microsoft Access เพื่อให้แน่ใจว่า ความสัมพันธ์ระหว่างระเบียนในตารางที่เกี่ยวข้องไม่ถูกต้อง และให้คุณโดยไม่ตั้งใจไม่ลบ หรือเปลี่ยนแปลงข้อมูลที่เกี่ยวข้อง คุณสามารถตั้งค่าความสมบูรณ์ของ referential เมื่อเงื่อนไขใด ๆ ต่อไปนี้ทั้งหมดตาม:
  • ฟิลด์ที่ตรงกันจากตารางหลักเป็นคีย์หลัก หรือมีดัชนีที่ไม่ซ้ำกัน
  • เขตข้อมูลเกี่ยวข้องมีพิมพ์ข้อมูลเดียวกัน มีข้อยกเว้นที่สอง มีฟิลด์ AutoNumber สามารถจะเกี่ยวข้องกับเขตข้อมูลหมายเลขที่มีการfieldSizeการตั้งค่าคุณสมบัติของจำนวนเต็มยาว และเพิ่มฟิลด์ AutoNumber ด้วยfieldSizeการตั้งค่าคุณสมบัติของ ID การจำลองแบบสามารถจะเกี่ยวข้องกับเขตข้อมูลหมายเลขที่มีการfieldSizeการตั้งค่าคุณสมบัติของการจำลองแบบ ID.
  • ตารางทั้งสองเป็นของฐานข้อมูล Microsoft Access เดียวกัน ถ้า ตารางที่เชื่อมโยงตาราง พวกเขาต้องเป็นตารางใน Microsoft Access รูป และคุณต้องเปิดฐานข้อมูลที่จะเก็บการตั้งค่าความสมบูรณ์ของ referential ความสมบูรณ์ของ referential ไม่ถูกบังคับใช้สำหรับตารางที่เชื่อมโยงจากฐานข้อมูลในรูปแบบอื่น ๆ
กฎต่อไปนี้นำไปใช้เมื่อคุณใช้ความสมบูรณ์ของ referential:

  • คุณไม่สามารถป้อนค่าในฟิลด์คีย์ภายนอกของตารางเกี่ยวข้องที่ไม่มีอยู่ในคีย์หลักของตารางหลัก However, you can enter a Null value in the foreign key, specifying that the records are unrelated. For example, you cannot have an order that is assigned to a customer that does not exist, but you can have an order that is assigned to no one by entering a Null value in the CustomerID field.
  • You cannot delete a record from a primary table if matching records exist in a related table. For example, you cannot delete an employee record from the Employees table if there are orders assigned to the employee in the Orders table.
  • You cannot change a primary key value in the primary table, if that record has related records. For example, you cannot change an employee's ID in the Employees table if there are orders assigned to that employee in the Orders table.

การปรับปรุง cascading และลบ

For relationships in which referential integrity is enforced, you can specify whether you want Microsoft Access to automatically cascade update or cascade delete related records. If you set these options, delete and update operations that would normally be prevented by referential integrity rules are allowed. When you delete records or change primary key values in a primary table, Microsoft Access makes the necessary changes to related tables to preserve referential integrity.

ถ้าคุณคลิกเพื่อเลือกนั้นCascade Update Related Fieldscheck box when you define a relationship, any time that you change the primary key of a record in the primary table, Microsoft Access automatically updates the primary key to the new value in all related records. For example, if you change a customer's ID in the Customers table, the CustomerID field in the Orders table is automatically updated for every one of that customer's orders so that the relationship is not broken. Microsoft Access cascades updates without displaying any message.

หมายเหตุ::If the primary key in the primary table is an AutoNumber field, selecting theCascade Update Related Fieldscheck box will have no effect, because you cannot change the value in an AutoNumber field.

ถ้าคุณเลือกนั้นเรียงซ้อนลบระเบียนที่เกี่ยวข้องcheck box when you define a relationship, any time that you delete records in the primary table, Microsoft Access automatically deletes related records in the related table. For example, if you delete a customer record from the Customers table, all the customer's orders are automatically deleted from the Orders table (this includes records in the Order Details table related to the Orders records). When you delete records from a form or datasheet with theเรียงซ้อนลบระเบียนที่เกี่ยวข้องcheck box selected, Microsoft Access warns you that related records may also be deleted. However, when you delete records using a delete query, Microsoft Access automatically deletes the records in related tables without displaying a warning.

ชนิดการเข้าร่วม

There are three join types, as follows:

ตัวเลือกที่ 1defines an inner join. An inner join is a join where records from two tables are combined in a query's results only if values in the joined fields meet a specified condition. In a query, the default join is an inner join that selects records only if values in the joined fields match.

ตัวเลือก 2defines a left outer join. A left outer join is a join in which all the records from the left side of the LEFT JOIN operation in the query's SQL statement are added to the query's results, even if there are no matching values in the joined field from the table on the right.

Option 3defines a right outer join. A right outer join is a join in which all the records from the right side of the RIGHT JOIN operation in the query's SQL statement are added to the query's results, even if there are no matching values in the joined field from the table on the left.

คุณสมบัติ

หมายเลขบทความ (Article ID): 304466 - รีวิวครั้งสุดท้าย: 17 กันยายน 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Keywords: 
kbdesign kbdatabase kbhowto kbmt KB304466 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:304466

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com