---
schema_version: "1"
id: dd7c18a6f060304da02e43ea4d5ec8f3aa90b6a932e3c9d8e535baf71303271e
title: ความไม่ซ้ำกันและความสมบูรณ์เชิงอ้างอิง
collection: tableau
version: current
locale: th-th
portal_url: https://docs.salesforce.com/tableau/current/th-th/public/desktop/cardinality_and_ri.md
canonical_url: https://help.tableau.com/current/public/desktop/th-th/cardinality_and_ri.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 74ebff95cf7e297f5b4362e7e2d028138257e0047f5a71a4374814b683709dfd
description: Understand cardinality and referential integrity and how they affect Tableau data source performance.
---
[ข้ามไปยังเนื้อหาหลัก](#main-content)

# ความไม่ซ้ำกันและความสมบูรณ์เชิงอ้างอิง

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

- **ระดับของรายละเอียด**: ข้อมูลมีความละเอียดเพียงใด หรือก็คือมุมมองแบบละเอียดของข้อมูลนั้น เราพิจารณาความละเอียดได้ด้วยการตอบคำถามที่ว่า “อะไรคือสิ่งที่กำหนดแต่ละแถว” ดูข้อมูลเพิ่มเติมเกี่ยวกับมุมมองแบบละเอียดได้ที่[จัดโครงสร้างข้อมูลสำหรับการวิเคราะห์](https://help.tableau.com/current/public/desktop/th-th/data_structure_for_analysis.htm#what-is-a-row)
- **ฟิลด์ที่แชร์**: ต้องมีอย่างน้อยหนึ่งฟิลด์ที่สามารถใช้สร้างลิงก์ระหว่างตารางได้ สำหรับการรวมหนึ่งๆ ฟิลด์เหล่านี้จะเป็นสิ่งที่กำหนด_ผนวกข้อมูล_ ในตารางที่เกี่ยวข้อง ฟิลด์เหล่านี้คือสิ่งที่สร้าง_ความสัมพันธ์_
- **ความไม่ซ้ำกัน**: บ่งชี้ว่าฟิลด์ที่แชร์มีค่าที่ไม่ซ้ำใครเป็นจำนวนมากหรือน้อยเท่าใด (ความเป็นเอกลักษณ์) ดูข้อมูลเพิ่มเติมได้ที่ส่วนถัดไป
- **ความสมบูรณ์เชิงอ้างอิง**: ค่าในตารางหนึ่งๆ ที่รับประกันว่าจะตรงกันกับอีกตารางหนึ่ง กล่าวคือ ต้องไม่มีระเบียนใดในตารางหนึ่งที่ไม่มีระเบียนที่สัมพันธ์กันในอีกตารางหนึ่ง ดูข้อมูลเพิ่มเติมได้ที่ด้านล่าง

## ความไม่ซ้ำกัน

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

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

ตัวเลือกประกอบด้วยหนึ่งต่อหนึ่ง หนึ่งต่อกลุ่ม กลุ่มต่อหนึ่ง หรือกลุ่มต่อกลุ่ม

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 75%;"><col style="width: 25%;"></colgroup><tbody><tr><td><p><b>หนึ่งต่อหนึ่ง</b></p><ul><li><i>คำจำกัดความ</i>:&nbsp;แต่ละค่าของฟิลด์ที่แชร์ในตารางหนึ่งนั้นมีความเกี่ยวข้องกับค่า<b>มากที่สุด</b>เพียงหนึ่งค่าในฟิลด์ที่แชร์ของอีกตารางหนึ่ง&nbsp;</li><li><i>ตัวย่อ</i>:&nbsp;1:1</li></ul><p><i>ตัวอย่าง</i>:&nbsp;รถยนต์ทุกคันมีเลขป้ายทะเบียนเป็นของตัวเอง และเลขป้ายทะเบียนหนึ่งๆ ก็เป็นของรถยนต์เพียงคันเดียวเท่านั้น ข้อมูลรถยนต์ต่อเลขป้ายทะเบียนถือเป็นหนึ่งต่อหนึ่ง</p><p>โปรดทราบว่า แม้ว่ารถยนต์คันหนึ่งๆ จะยังไม่ได้จดทะเบียน หรือเลขป้ายทะเบียนหนึ่งๆ ยังไม่ได้ถูกกำหนดให้กับรถคันใด ความคลาดเคลื่อนนั้นจะถูกอธิบายโดยความสมบูรณ์เชิงอ้างอิง รถยนต์คันหนึ่งสามารถมีเลขป้ายทะเบียนได้เพียงเลขเดียว และเลขป้ายทะเบียนหนึ่งๆ สามารถกำหนดให้กับรถยนต์เพียงคันเดียวเท่านั้น ดังนั้นความไม่ซ้ำกันจะยังคงถือเป็นหนึ่งต่อหนึ่ง</p></td><td><p>&nbsp;</p><img src="https://help.tableau.com/current/public/desktop/th-th/Img/1-1.png" alt="แผนภูมิแท่งแนวนอนที่มีแถบสีสามแถบ"></td></tr><tr><td><p><b>หนึ่งต่อกลุ่ม</b> หรือ <b>กลุ่มต่อหนึ่ง</b></p><ul><li><i>คำจำกัดความ</i>:&nbsp;แต่ละค่าของฟิลด์ที่แชร์ในตารางหนึ่งนั้นสามารถมีความเกี่ยวข้องกับหลากหลายแถวในอีกตารางหนึ่ง (มีค่าดังกล่าวอย่างซ้ำๆ ในอีกตารางหนึ่ง)</li><li><i>ตัวย่อ</i>:&nbsp;m:1 หรือ 1:m</li><li>ลำดับของตารางคือสิ่งที่กำหนดว่าเป็นกลุ่มต่อหนึ่งหรือหนึ่งต่อกลุ่ม (คล้ายกับการผนวกซ้ายและขวา)</li></ul><p><i>ตัวอย่าง</i>:&nbsp;มีพนักงานจำนวนมากที่มีผู้จัดการคนเดียวกัน ข้อมูลพนักงานต่อผู้จัดการถือเป็นกลุ่มต่อหนึ่ง ข้อมูลผู้จัดการต่อพนักงานถือเป็นหนึ่งต่อกลุ่ม</p></td><td><p>&nbsp;</p><img src="https://help.tableau.com/current/public/desktop/th-th/Img/1-M.png" alt="โฟว์ชาร์ตประกอบด้วยกล่องสีพาสเทลหกกล่องที่เชื่อมต่อกัน"><p><img src="https://help.tableau.com/current/public/desktop/th-th/Img/M-1.png" alt="ตัวอย่างความสัมพันธ์แบบหนึ่งต่อกลุ่ม"></p></td></tr><tr><td><p><b>กลุ่มต่อกลุ่ม</b></p><ul><li>ค่าจำนวนมากในฟิลด์ที่แชร์ของตารางหนึ่งสามารถมีความเกี่ยวข้องกับหลายแถวในอีกตารางหนึ่ง (ค่าของฟิลด์ที่แชร์สามารถมีอย่างซ้ำๆ ในหลากหลายแถวของตารางใดตารางหนึ่ง)</li><li>ตัวย่อคือ m:m</li><li>นี่คือการตั้งค่าที่เป็นค่าเริ่มต้นหากตรวจไม่พบการตั้งค่าอื่นใดในแหล่งข้อมูล</li></ul><p><i>ตัวอย่าง</i>:&nbsp;นักแสดงรายหนึ่งแสดงในภาพยนตร์หลายเรื่อง และภาพยนต์เรื่องหนึ่งมีนักแสดงหลายคน ข้อมูลนักแสดงต่อภาพยนตร์ถือเป็นกลุ่มต่อกลุ่ม หนังสือหลายเล่มสามารถูกซื้อพร้อมกันได้ในธุรกรรมเดียว และหนังสือหนึ่งเล่มสามารถถูกซื้อได้หลายครั้ง ข้อมูล ISBN ต่อ OrderID ถือเป็นกลุ่มต่อกลุ่ม</p></td><td><p>&nbsp;</p><img src="https://help.tableau.com/current/public/desktop/th-th/Img/M-M.png" alt="ตัวอย่างความสัมพันธ์แบบกลุ่มต่อกลุ่ม"></td></tr></tbody></table>

สามารถกำหนดความไม่ซ้ำกันได้ที่การตั้งค่าตัวเลือกประสิทธิภาพ หากต้องการข้อมูลเพิ่มเติม โปรดดู[เพิ่มประสิทธิภาพการค้นหาความสัมพันธ์โดยใช้ตัวเลือกประสิทธิภาพ](https://help.tableau.com/current/public/desktop/th-th/datasource_relationships_perfoptions.htm)

## ความสมบูรณ์เชิงอ้างอิง

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

ใน Tableau ความสมบูรณ์เชิงอ้างอิงได้รับการกำหนดค่าในทั้งสองฝั่งของความสัมพันธ์ ที่ในการตั้งค่าตัวเลือกประสิทธิภาพ บางระเบียนตรงกันหมายความว่าไม่มี (หรือคุณไม่ทราบว่ามีหรือไม่) ความสมบูรณ์เชิงอ้างอิง ระเบียนทั้งหมดตรงกันหมายความว่ามีความสมบูรณ์เชิงอ้างอิง การตั้งค่าที่เป็นค่าเริ่มต้นจะไม่คาดการณ์ว่ามีความสมบูรณ์เชิงอ้างอิง (บางระเบียนตรงกัน)

หากต้องการข้อมูลเพิ่มเติม โปรดดู[เพิ่มประสิทธิภาพการค้นหาความสัมพันธ์โดยใช้ตัวเลือกประสิทธิภาพ](https://help.tableau.com/current/public/desktop/th-th/datasource_relationships_perfoptions.htm)

## ทดสอบตัวเอง

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

ตัวอย่าง:

 ![](/tableau/current/th-th/public/desktop/th-th/Img/cardinality_RI_example.png)

หากเราตั้งค่าตารางทางซ้ายเป็นหนังสือ และตารางทางขวาเป็นผู้เขียนซึ่งลิงก์กับ AuthorID ให้แปลแผนภาพออกมาเป็นคำ: 

- **หนังสือหนึ่งเล่มสามารถมีผู้เขียนมากกว่าหนึ่งคน** (ระเบียนสีม่วงแสดงแถวหนึ่งในตารางหนังสือทางซ้ายที่สัมพันธ์กับหลากหลายระเบียนในตารางผู้เขียนทางขวา)
- **ไม่มีผู้เขียนคนใดมีหนังสือมากกว่าหนึ่งเล่ม** (ระเบียนผู้เขียนแต่ละรายการทางขวานำไปสู่ระเบียนหนังสือเพียงหนึ่งรายการทางซ้าย)
- **ไม่มีหนังสือเล่มใดที่ไม่มีนักเขียน** (ไม่มีระเบียนใดทางซ้ายที่ไม่สัมพันธ์กับระเบียนใดเลยทางขวา)
- **ผู้เขียนบางคนอาจไม่มีหนังสือใดๆ เลย** (ระเบียนผู้เขียนสีเทาทางขวาไม่สัมพันธ์กับระเบียนหนังสือใดเลยทางซ้าย)

_คลิกแต่ละส่วนด้านล่างเพื่อขยาย_

ตรวจสอบความรู้ของคุณ

![](/tableau/current/th-th/public/desktop/th-th/Img/cardinality_RI_tryit.png)

โซลูชัน

![](/tableau/current/th-th/public/desktop/th-th/Img/cardinality_RI_solution.png)

## สิ่งนี้สำคัญอย่างไร

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Tableau จัดการกับแต่ละการตั้งค่าได้ใน[การตั้งค่าความไม่ซ้ำกันและความสมบูรณ์เชิงอ้างอิงหมายถึงอะไร](https://help.tableau.com/current/public/desktop/th-th/datasource_relationships_perfoptions.htm#OptionalSettings)

### ตัวอย่างใน Tableau

มาสำรวจกันว่าจะเกิดอะไรขึ้นเมื่อความไม่ซ้ำกันถูกกำหนดค่าอย่างไม่ถูกต้อง

**หมายเหตุ**: ตัวอย่างต่อไปนี้ใช้เซตย่อยของตารางต่างๆ จาก[ชุดข้อมูลร้านหนังสือ](https://help.tableau.com/current/public/desktop/th-th/bookshop_data.htm) คุณสามารถ[ดาวน์โหลดเวิร์กบุ๊ก](https://help.tableau.com/samples/en-us/bookshop/cardinality_RI.twbx)เพื่อทำตามไปพร้อมกันได้ หรือดาวน์โหลดข้อมูลดิบเพื่อสร้างแหล่งข้อมูลด้วยตัวคุณเอง ตารางที่ใช้ได้แก่ **Books**, **Info** และ **Edition** จาก _Bookshop.xlsx_ (เก็บไว้แค่บางฟิลด์) และ **LibraryProfile** กับ **Catalog** จาก _BookshopLibraries.xlsx_

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

Edition มีความเกี่ยวข้องกับ Catalog ด้วยความสัมพันธ์แบบหนึ่งต่อกลุ่มผ่านข้อมูล ISBN ตาราง Catalog และ LibraryProfile มีความเกี่ยวข้องกันในแบบกลุ่มต่อกลุ่มผ่านข้อมูล Library ID ประเด็นสำคัญคือตาราง LibraryProfiles มีหลายแถวต่อหนึ่งห้องสมุด โดยแยกแต่ละแถวสำหรับเจ้าหน้าที่แต่ละประเภท (Librarian, Library Assistant, Library Technician) ดูข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างของตารางเหล่านี้ได้ที่[ชุดข้อมูลร้านหนังสือ](https://help.tableau.com/current/public/desktop/th-th/bookshop_data.htm)

![](/tableau/current/th-th/public/desktop/th-th/Img/bookshop_schema_manytomany.jpeg)

#### การตั้งค่าที่ถูกต้อง

เมื่อความสัมพันธ์ระหว่าง Catalog กับ LibraryProfile ได้รับการตั้งค่าอย่างถูกต้อง เราจะสามารถสร้างภาพที่เรียบง่ายซึ่งแสดงจำนวนเจ้าหน้าที่สำหรับแต่ละห้องสมุดสำหรับหนังสือหลายเล่มได้ แม้ว่าภาพนี้อาจดูไม่ค่อยได้เรื่อง แต่ก็มีประโยชน์ในการแสดงประเด็นนี้ให้เห็นออกมาเป็นภาพ Idle Hour Library มีเจ้าหน้าที่ 130 คนไม่ว่าเราจะพูดถึงหนังสือเล่มใดก็ตาม ประเภทเจ้าหน้าที่มีทั้งหมดสามค่า ดังนั้นรวมแต่ละรายการแล้วเท่ากับสามระเบียน ซึ่งก็คือตัวเลขในวงเล็บระบุ

![](/tableau/current/th-th/public/desktop/th-th/Img/mm_right.png)

**จำนวนเจ้าหน้าที่ตามห้องสมุดและตำแหน่ง (ตัวเลขในวงเล็บระบุจำนวนระเบียนในแต่ละเครื่องหมาย)**

#### การตั้งค่าที่ไม่ถูกต้อง: หนึ่งต่อหนึ่ง

เมื่อความสัมพันธ์ถูกตั้งค่าอย่างผิดพลาดเป็นหนึ่งต่อหนึ่ง ในการแสดงเป็นภาพ แต่ละชื่อจาก Catalog จะถูกจับคู่กับหนึ่งระเบียนเท่านั้นจากตาราง LibraryProfile (ดังที่บ่งบอกผ่านตัวเลขในวงเล็บระบุ)

![](/tableau/current/th-th/public/desktop/th-th/Img/mm_wrong11.png)

**จำนวนเจ้าหน้าที่ตามห้องสมุดและตำแหน่ง (ตัวเลขในวงเล็บระบุจำนวนระเบียนในแต่ละเครื่องหมาย)**

ข้างต้น เราจะเห็นได้ว่าห้องสมุดแต่ละแห่งแสดงเพียงจำนวนขั้นต่ำของเจ้าหน้าที่ที่ห้องสมุดมี (ดูเลขตัวหนาในการแสดงเป็นภาพด้านล่าง) จำนวนต่ำสุดของเจ้าหน้าที่คือตัวเลขที่ระบุอยู่ในภาพ Staff Count)

![](/tableau/current/th-th/public/desktop/th-th/Img/staffcounts.png)

**การแจกแจงเจ้าหน้าที่แบบแบ่งตามประเภทและห้องสมุด**

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีทำให้ความสัมพันธ์ผนวกเข้าด้วยกันในเชิงบริบทเพื่อใช้ในการแสดงเป็นภาพ โปรดดูที่ [แนะนำการสร้างแบบจำลองข้อมูลใหม่ใน Tableau](https://www.tableau.com/th-th/about/blog/2020/5/relationships-part-1-meet-new-tableau-data-model) ในบล็อก Tableau

#### การตั้งค่าที่ไม่ถูกต้อง: การผนวก

แม้ว่าจะมีหลากหลายวิธีในการจัดการกับปัญหาชนิดนี้ โดยวิธียอดนิยมคือใช้นิพจน์ระดับรายละเอียด การผนวกหลายตารางที่มีมุมมองแบบละเอียดหรือ “กลุ่ม” ที่แตกต่างกันในความไม่ซ้ำกันของตารางอาจส่งผลให้เกิดข้อมูลซ้ำได้ ในที่นี้ จำนวนเจ้าหน้าที่จะถูกต้องสำหรับชื่อที่มีเพียงรูปแบบเดียวเท่านั้น แต่สำหรับหนังสือที่มีสองรูปแบบในตาราง Edition รูปแบบทั้งสองจะถูกส่งไปยังจำนวนเจ้าหน้าที่ด้วยเช่นกัน (สังเกตได้ว่าจำนวนระเบียนในวงเล็บระบุแสดงเป็น 6 แทนตัวเลขที่ถูกต้อง ซึ่งก็คือ 3)

![](/tableau/current/th-th/public/desktop/th-th/Img/mm_wrong_join.png)

**จำนวนเจ้าหน้าที่ตามห้องสมุดและตำแหน่ง (ตัวเลขในวงเล็บระบุจำนวนระเบียนในแต่ละเครื่องหมาย)**

#### การตั้งค่าที่ไม่ถูกต้อง: คาดการณ์ความสมบูรณ์เชิงอ้างอิงอย่างไม่ถูกต้อง

การบอก Tableau ว่ามีความสมบูรณ์เชิงอ้างอิง (ระเบียนทั้งหมดตรงกัน) ทั้งที่ไม่ใช่กรณีที่เกิดขึ้นจริงอาจส่งผลให้ค่าลดลงได้ ในที่นี้ ภาพทั้งสองนี้คล้ายกัน แต่ภาพทางด้านขวามาจากแหล่งข้อมูลที่กำหนดค่าให้คาดการณ์ความสมบูรณ์เชิงอ้างอิง ภาพดังกล่าวไม่มีค่า Null แม้ว่าในบางกรณีจะไม่ได้เป็นปัญหาใดๆ แต่ก็จำเป็นต้องเข้าใจว่าค่า Null เหล่านั้นบ่งบอกถึงอะไร ในที่นี้ ภาพแสดงจำนวนฉบับพิมพ์ของห้องสมุดแต่ละแห่ง โดยค่า Null หมายถึงฉบับพิมพ์สองรายการที่แสดงอยู่ในตาราง Edition แต่ไม่ได้มีอยู่ในห้องสมุดใดๆ นี่อาจเป็นการมองข้ามที่สำคัญ และเป็นการคาดการณ์อย่างไม่ถูกต้องว่าความสมบูรณ์เชิงอ้างอิงจะเมินเฉย

![](/tableau/current/th-th/public/desktop/th-th/Img/ri_comparison.png)

[สำรวจเวิร์กบุ๊ก](https://help.tableau.com/samples/en-us/bookshop/cardinality_RI.twbx)และแหล่งข้อมูลของเวิร์กบุ๊กเพื่อดูปัญหาอื่นๆ ที่อาจเกิดขึ้นจากการตารางที่รวมอย่างไม่ถูกต้อง

## ผลกระทบต่อประสิทธิภาพ

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

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

### ใช่ว่าจะชัดเจนเสมอไป

**หมายเหตุ**: ส่วนนี้ใช้การเปรียบเทียบกับเทคนิคการรวมข้อมูลแบบอื่นๆ เพื่อช่วยเป็นกรอบแนวคิดเท่านั้น การเปรียบเทียบนี้ไม่ใช่คำอธิบายเชิงเทคนิคว่า Tableau ตั้งค่าประสิทธิภาพสำหรับความสัมพันธ์ด้วยวิธีใด

**ความไม่ซ้ำกัน**

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

ในตัวอย่างข้างต้น การตั้งค่า “กลุ่ม” หมายความว่าจำนวนเจ้าหน้าที่ของห้องสมุดแต่ละแห่งถูกทำการรวมก่อนที่จะผนวกข้อมูลนั้นกับข้อมูลหนังสือ ซึ่งเป็นการช่วยให้มั่นใจว่าหนังสือทุกเล่มจะมีจำนวนที่ถูกต้อง เมื่อความไม่ซ้ำกันถูกตั้งค่าอย่างไม่ถูกต้องเป็น “หนึ่ง” จำนวนเจ้าหน้าที่จะไม่ถูกทำการรวมก่อนที่ข้อมูลจำนวนนั้นจะถูกผนวกเข้ากับข้อมูลหนังสือ ส่งผลให้ได้ค่าที่ไม่ถูกต้อง

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

![](/tableau/current/th-th/public/desktop/th-th/Img/1-1aggregation.png)

อย่างไรก็ตาม หากค่าเป็นแบบไม่ซ้ำใคร Tableau จะสามารถเลือกที่จะลบการรวมที่ผนวกไว้ล่วงหน้าได้หากการทำเช่นนี้ช่วยให้การค้นหามีประสิทธิภาพมากขึ้น

**ความสมบูรณ์เชิงอ้างอิง**

แม้ว่าความสมบูรณ์เชิงอ้างอิงหมายถึงการตั้งค่าความสัมพันธ์ แต่ก็สามารถมองว่าเป็นการผนวกประเภทต่างๆ ได้เช่นกัน การรวมภายนอกอย่างเต็มรูปแบบจะสงวนระเบียนทั้งหมดไม่ว่าระเบียนจะตรงกันกับในอีกตารางหนึ่งหรือไม่ แต่จะส่งผลต่อประสิทธิภาพ หากคุณไม่แน่ใจว่าระเบียนจะสูญหายหรือไม่ การรวมภายนอกจะมีความปลอดภัยกว่า นี่คือลักษณะการใช้งานตารางที่ไม่ได้มีความสมบูรณ์เชิงอ้างอิง (บางระเบียนตรงกัน)

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

การตั้งค่าความสมบูรณ์เชิงอ้างอิงอย่างไม่ถูกต้องอาจส่งผลให้เกิดลักษณะที่คล้ายกับการใช้ตัวกรองบนข้อมูลที่ผนวกเข้าด้วยกัน โดยที่ลบค่าที่ไม่ตรงกันออก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพลังของการสงวนระเบียนที่ไม่ตรงกัน โปรดดู[การถามคำถามในตารางที่เกี่ยวข้องหลายตาราง](https://www.tableau.com/th-th/about/blog/2020/6/relationships-part-3-asking-questions-across-multiple-related-tables)ในบล็อก Tableau สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทการผนวก โปรดดูที่ [รวมข้อมูลของคุณ](https://help.tableau.com/current/public/desktop/th-th/joining_tables.htm)

## เก็บค่าเริ่มต้นไว้

หากการวิเคราะห์ของคุณมีประสิทธิภาพที่ดี เราขอแนะนำเป็นอย่างยิ่งให้ใช้ค่าเริ่มต้นของการตั้งค่าตัวเลือกประสิทธิภาพซึ่งก็คือ “กลุ่มต่อกลุ่ม” ต่อไป และไม่คาดการณ์ความสมบูรณ์เชิงอ้างอิง พลังของความสัมพันธ์มาจากความสามารถในการให้ผลลัพธ์ที่ถูกต้อง ตรงบริบท โดยอิงจากตารางที่ใช้ในการวิเคราะห์ การเปลี่ยนการตั้งค่าเหล่านี้จะเป็นการลบ[ความยืดหยุ่นเชิงความหมายของความสัมพันธ์](https://www.tableau.com/th-th/about/blog/2020/5/relationships-part-1-meet-new-tableau-data-model)