คำถามติดแท็ก normalization

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

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

3
ทำคอลัมน์ซ้ำเพื่อการสืบค้นที่เร็วขึ้นไหม
ชื่อเรื่องไม่สมเหตุสมผล แต่ฉันไม่สามารถคิดชื่อที่ดีกว่าสำหรับปัญหานี้ได้ ฉันมีตารางต่อไปนี้ โครงการ รหัส ชื่อ ลูกค้า รหัส id_project ชื่อ การชำระเงิน รหัส id_customer วันที่ รวม เมื่อผู้ใช้เข้าสู่ระบบเขาจะสามารถเข้าถึงโครงการบางอย่างได้ ตอนนี้ฉันต้องการแสดงรายการการชำระเงินทั้งหมดสำหรับโครงการนั้นและควรง่าย: SELECT FROM payments where id_customer in (SELECT id from customers where id_project = 5) คำถามของฉันคือ: หากการเพิ่มคอลัมน์ id_project ในตารางการชำระเงินไม่ดีกว่าวิธีนี้จะทำให้การสืบค้นง่ายขึ้นและเร็วขึ้น

7
ปัญหาใดที่แก้ไขได้โดยแยกที่อยู่เป็นคอลัมน์แต่ละคอลัมน์
เรามีทีมงานที่ออกแบบตารางและความสัมพันธ์สำหรับนักพัฒนาซอฟต์แวร์ ในองค์กรของเราพวกเขาค่อนข้างเข้มงวดเกี่ยวกับการบังคับใช้มาตรฐาน 3NF ซึ่งโดยความจริงแล้วฉันเห็นด้วยกับขนาดองค์กรของเราและความต้องการหรือลูกค้าของเราเปลี่ยนแปลงไปตามกาลเวลาอย่างไร มีเพียงส่วนเดียวที่ฉันไม่ชัดเจนเกี่ยวกับเหตุผลที่อยู่เบื้องหลังการตัดสินใจออกแบบ: ที่อยู่ แม้ว่าสิ่งนี้จะเน้นที่ที่อยู่ในสหรัฐอเมริกาเป็นส่วนใหญ่ แต่ฉันคิดว่าสิ่งนี้สามารถใช้ได้กับทุกประเทศที่ทำสิ่งนี้ ที่อยู่แต่ละส่วนจะได้รับคอลัมน์ของตนเองในตารางที่อยู่ ตัวอย่างเช่นใช้ที่อยู่ gnarly US นี้: Attn: Jane Doe 485 1/2 N Smith St SW, APT 300B Chicago, IL 11111-2222 มันจะถูกแยกย่อยในฐานข้อมูลดังนี้: ถนนหมายเลข: 485 เศษถนน: 1/2 ทิศทางก่อนถนน: N (เหนือ) ชื่อถนน: Smith ประเภทถนน: ST (ถนน) ทิศทางหลังถนน: SW (ตะวันตกเฉียงใต้) เมือง: ชิคาโก รัฐ: IL (อิลลินอยส์) รหัสไปรษณีย์: 11111 …

3
จะมีความสัมพันธ์แบบตัวต่อตัวกับเด็กที่มีสิทธิพิเศษอย่างไร
ฉันต้องการที่จะมีความสัมพันธ์แบบหนึ่งต่อหลายคนซึ่งสำหรับผู้ปกครองแต่ละคนเด็กหนึ่งหรือศูนย์ถูกทำเครื่องหมายเป็น "รายการโปรด" อย่างไรก็ตามผู้ปกครองทุกคนจะไม่มีลูก (นึกถึงผู้ปกครองว่าเป็นคำถามในไซต์นี้เด็ก ๆ เป็นคำตอบและชอบเป็นคำตอบที่ยอมรับ) ตัวอย่างเช่น TableA Id INT PRIMARY KEY TableB Id INT PRIMARY KEY Parent INT NOT NULL FOREIGN KEY REFERENCES TableA.Id วิธีที่ฉันเห็นฉันสามารถเพิ่มคอลัมน์ต่อไปนี้ใน TableA: FavoriteChild INT NULL FOREIGN KEY REFERENCES TableB.Id หรือคอลัมน์ต่อไปนี้เพื่อ TableB: IsFavorite BIT NOT NULL ปัญหาเกี่ยวกับวิธีแรกคือมันแนะนำคีย์ต่างประเทศที่ไม่มีค่าซึ่งฉันเข้าใจว่าไม่ได้อยู่ในรูปแบบปกติ ปัญหาเกี่ยวกับแนวทางที่สองคือต้องทำงานมากกว่านี้เพื่อให้แน่ใจว่าเด็กส่วนใหญ่จะเป็นคนโปรด เกณฑ์ประเภทใดที่ฉันควรใช้เพื่อกำหนดวิธีการที่จะใช้ หรือมีวิธีอื่นที่ฉันไม่ได้พิจารณาหรือไม่? ฉันใช้ SQL Server 2012

4
มีเครื่องมือในการตรวจสอบว่าฐานข้อมูลของฉันเป็นมาตรฐานในรูปแบบปกติที่สามหรือไม่?
ฉันเรียนรู้เกี่ยวกับการทำให้เป็นมาตรฐานเมื่อเร็ว ๆ นี้และเข้าใจว่าการใช้สคีมาใหม่นั้นมีความสำคัญเพียงใด ฉันจะตรวจสอบว่าฐานข้อมูลของฉันเป็นไปตาม 2NF หรือ 3NF ได้หรือไม่? การตรวจสอบด้วยตนเองเป็นตัวเลือกที่แน่นอน แต่ฉันกำลังมองหาเครื่องมืออัตโนมัติที่นี่ ฉันไม่ได้กำลังมองหาเครื่องมือจุดและคลิกสิ่งที่มากกว่านั้นจะเน้นการปรับให้เหมาะสมที่สุดเพื่อให้เป็นไปตามตาราง 3NF ฉันเดาว่าอาจใช้สถิติจากข้อมูลตัวอย่างที่ดีและ / หรือการวิเคราะห์ความหมายของชื่อคอลัมน์

4
วิธีจัดการกับการออกแบบตารางด้วยคอลัมน์ตัวแปร
ฉันมีสถานการณ์การออกแบบตารางและเป็นประเภทที่ไม่ใช่ DBA ต้องการความคิดเห็นที่ปรับขนาดได้มากกว่า สมมติว่าคุณถูกขอให้บันทึกข้อมูลบ้านในพื้นที่เมืองใหญ่โดยเริ่มจากย่านเล็ก ๆ (บ้าน 200 หลัง) แต่ในที่สุดจะเติบโตเป็นบ้าน 5 แสนหลัง คุณจะต้องจัดเก็บข้อมูลพื้นฐาน: ID # (# ล็อตที่ไม่ซ้ำกันที่เราสามารถใช้เป็นดัชนีที่ไม่ซ้ำกัน), Addr, City, State, Zip ปรับตารางง่าย ๆ จะจัดการกับมัน แต่ในแต่ละปีคุณจะถูกขอให้บันทึกข้อมูลพิเศษเกี่ยวกับบ้านทั้งหมด - และข้อมูลอะไรจะเปลี่ยนแปลงในแต่ละปี ตัวอย่างเช่นในปีแรกคุณจะถูกขอให้บันทึกชื่อและนามสกุลของเจ้าของวิดีโอ ในปีที่สองคุณจะถูกขอให้เก็บนามสกุล แต่ดัมพ์วิดีโอสแควร์และเริ่มรวบรวมชื่อเจ้าของแทน สุดท้าย - ในแต่ละปีจำนวนคอลัมน์พิเศษจะเปลี่ยนไป อาจเริ่มต้นด้วย 2 คอลัมน์เพิ่มเติมจากนั้นไปที่ 6 ปีหน้าจากนั้นกลับไปที่ 2 ดังนั้นวิธีหนึ่งในตารางคือพยายามเพิ่มข้อมูลที่กำหนดเองเป็นคอลัมน์ในตารางบ้านเพื่อให้มีเพียงหนึ่งตาราง แต่ฉันมีสถานการณ์ที่มีคนวางตารางสำหรับสิ่งนี้เช่น: คอลัมน์ "House Table": ID, Addr, City, State, Zip - ด้วยหนึ่งแถวต่อบ้าน …

1
การออกแบบฐานข้อมูลสำหรับโดเมนธุรกิจวิดีโอเกมที่มีความสัมพันธ์แบบหลายต่อหลายคน
ฉันค่อนข้างใหม่ในการออกแบบฐานข้อมูลและฉันตัดสินใจที่จะสร้างฐานข้อมูลสมมุติของตัวเองเพื่อฝึกหัด อย่างไรก็ตามฉันมีปัญหาในการสร้างแบบจำลองและทำให้เป็นมาตรฐานในขณะที่ฉันเห็นว่ามีความสัมพันธ์แบบหลายต่อหลายคน (M: N) คำอธิบายภาพจำลองทั่วไป ฐานข้อมูลมีวัตถุประสงค์เพื่อเก็บข้อมูลเกี่ยวกับผู้คนที่ทำงานในซีรี่ส์ Zelda ฉันต้องการติดตามคอนโซลที่สามารถเล่นเกมได้พนักงานที่มีส่วนร่วมในการพัฒนาเกมงานที่พนักงานมี ( พนักงานหลายคนทำงานในงานที่แตกต่างกันในหลายเกม ) ฯลฯ กฎเกณฑ์ทางธุรกิจ หลายพนักงานสามารถทำงานได้ในหลายเกม หลายเกมสามารถอยู่บนเดียวกันคอนโซล Multiple Consolesสามารถเป็นแพลตฟอร์มสำหรับเกมเดียวกันได้ หลายพนักงานสามารถมีเหมือนกันงาน พนักงานสามารถมีหลายงาน เกมสามารถมีหลายพนักงาน เกมสามารถมีหลายประเภทของงานในการพัฒนาของมัน เกมหลายเกมสามารถแนบJobประเภทเดียวกันได้ คอนโซลสามารถมีหลายคนที่ทำงานกับมัน คนสามารถทำงานได้ในหลายConsoles ชื่อแอตทริบิวต์และค่าตัวอย่าง ชื่อพนักงานซึ่งสามารถแบ่งออกเป็นชื่อแรกและนามสกุล (เช่น“ John” และ“ Doe”) ชื่อเกม (ตัวอย่างเช่น "Ocarina of Time") ตำแหน่งงาน (ตัวอย่างเช่น "การออกแบบระดับ", "ผู้อำนวยการ", "ความสงบ", "ผู้ออกแบบระดับ", "โปรแกรมเมอร์", "การรองรับหลายภาษา" ฯลฯ ) ชื่อคอนโซล (ตัวอย่างเช่น“ Game Boy Advance”) …

4
Blockchain (Bitcoin) เป็นฐานข้อมูลหรือไม่?
ฉันอ่านบทความข่าวบีบีซีและข้อความที่ตัดตอนมาต่อไปนี้ดึงดูดความสนใจของฉัน ดูเหมือนว่าอยู่ในกลุ่มความพร้อมใช้งานเสมอหรือการมีความพร้อมใช้งานสูงซึ่งอาจรวมถึงความปลอดภัยโดยอัตโนมัติ blockchain เป็นโซลูชันฐานข้อมูลที่มีศักยภาพสำหรับแอพพลิเคชั่นปริมาณมากและทันสมัยหรือไม่? มันค่อนข้างง่ายที่จะเห็นว่ามันคุ้มค่าสำหรับการทำธุรกรรมในปริมาณต่ำเช่นเวชระเบียนส่วนตัว แต่ฐานข้อมูลปริมาณสูงเป็นอย่างไร blockchain คืออะไร Blockchains พึ่งพาการเข้ารหัสเพื่อให้คอมพิวเตอร์สามารถทำการเปลี่ยนแปลงบันทึกทั่วโลกโดยไม่จำเป็นต้องมีนักแสดงกลาง การลบคนกลางลดค่าใช้จ่ายในเกือบทุกภาค blockchain เป็นบัญชีแยกประเภทที่บันทึกทุกอย่างที่เกิดขึ้นกับการรวบรวมข้อมูลที่เรียกว่า "บล็อก" ตามลำดับเวลาหรือ "ห่วงโซ่" ในฐานะที่เป็นสกุลเงินนี่เป็นคุณสมบัติที่สำคัญเพราะช่วยให้ผู้ใช้มั่นใจได้ว่าเงินดิจิทัลของพวกเขาเป็นหนึ่งในวิธีเดียวกันทุกครั้งในกระเป๋าเงินของคุณจะไม่ซ้ำกัน “ เทคโนโลยี Blockchain เป็นวิธีที่เราสร้างสินทรัพย์เพราะจะช่วยให้คุณถ่ายโอนข้อมูลดิจิตอลโดยไม่ต้องคัดลอก” Adam Ludwin หัวหน้าผู้บริหารของ Chain.com กล่าวซึ่งสร้างเครือข่ายบล็อกเชน Blockchain สามารถใช้เพื่อติดตามประวัติของข้อมูลทุกประเภทและรักษาคุณค่าของมันตัวอย่างเช่นแพทย์สามารถใช้มันเพื่ออัพเดทเวชระเบียน เนื่องจากการเปลี่ยนแปลงแต่ละครั้งใน blockchain นั้นเกิดขึ้นพร้อมกันในเครือข่ายทั้งหมดจึงไม่มีข้อมูลสูญหายและเนื่องจากการเปลี่ยนแปลงไม่สามารถยกเลิกได้ระบบจะรักษาความโปร่งใส จำเป็นต้องใช้คีย์พิเศษในการเปลี่ยนแปลงแต่ละบล็อกเพื่อให้บุคคลสามารถเก็บบันทึกของพวกเขาปลอดภัยโดยการปกป้องคีย์นั้น

6
การทำให้ฐานข้อมูลเป็นปกติอยู่หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันได้รับการเลี้ยงดูโรงเรียนเก่า - ที่เราเรียนรู้การออกแบบสคีมาฐานข้อมูลก่อนที่ชั้นธุรกิจของแอปพลิเคชัน (หรือใช้ OOAD สำหรับทุกอย่างอื่น) ฉันค่อนข้างดีกับการออกแบบ schemas (IMHO :) และปรับให้เป็นมาตรฐานเท่านั้นเพื่อลบความซ้ำซ้อนที่ไม่จำเป็นออกไป แต่ส่วนใหญ่มันไม่ใช่ ด้วยการถือกำเนิดของกรอบ ORM บางอย่างเช่น Ruby ActiveRecord หรือ ActiveJDBC (และอีกไม่กี่ฉันจำไม่ได้ แต่ฉันแน่ใจว่ามีมากมาย) ดูเหมือนว่าพวกเขาชอบที่จะมีคีย์ตัวแทนสำหรับทุกตารางแม้ว่าบางคนมีคีย์หลักเช่น 'email' - ทำลาย 2NF เอาล่ะ โอเคฉันเข้าใจไม่มากเกินไป แต่มันก็เกิดขึ้นในประสาทของฉัน (เกือบ) เมื่อ ORM เหล่านี้ (หรือโปรแกรมเมอร์) บางคนไม่ยอมรับ 1-1 หรือ 1-0 | 1 (เช่น 1 ถึง …

6
การทำให้เป็นมาตรฐาน: ถือว่าเป็นไปตามการแยกค่าคงที่และตัวเลขเช่นปีลงในตารางของตัวเองหรือไม่?
ฉันกำลังสนทนากับผู้ออกแบบฐานข้อมูลคนอื่นเกี่ยวกับการทำให้เป็นมาตรฐาน ในตัวอย่างนี้เรามีตาราง GameTitles และแต่ละระเบียนต้องมีปีที่เกมวางจำหน่าย เขาบอกว่า 2NF มอบอำนาจให้ทุกอย่างต้องเป็นมาตรฐานดังนั้นเพื่อให้เป็นไปตามข้อกำหนดฟิลด์ปีควรแยกออกเป็นตาราง ReleaseYears ด้วยคีย์หลักของตัวเองที่อ้างอิงโดยตาราง GameTitles ฉันบอกว่ามันควรจะยังคงเป็นเขตข้อมูลในตาราง GameTitles เอง อาร์กิวเมนต์ของฉันคือว่าปีเป็นเพียงตัวเลขที่ไม่ใช่แบบดั้งเดิมที่คงที่โดยธรรมชาติ (เช่น 2011 จะเป็น 2011) เนื่องจากสิ่งนี้มันทำหน้าที่เป็นตัวระบุของตัวเองและไม่จำเป็นต้องอ้างอิงเพราะมันคือสิ่งที่มันเป็น สิ่งนี้ยังแนะนำการบำรุงรักษาเพิ่มเติมเนื่องจากคุณต้องเพิ่มปีใหม่ลงในตารางเพื่ออ้างอิง หากคุณเติมตารางด้วยช่วงเวลาที่ยาวนานเป็นระยะเวลานานคุณจะมีบันทึกพิเศษที่อาจไม่มีการอ้างอิงถึงพวกเขาเลย สิ่งนี้ยังเพิ่มขนาดฐานข้อมูลเนื่องจากตอนนี้คุณมีตารางเพิ่มเติมบันทึกค่าใช้จ่ายและคีย์หลักเพิ่มเติมสำหรับปีนั้น ๆ หากคุณให้ปีเป็นเขตข้อมูลในตาราง GameTitles คุณจะกำจัดการบำรุงรักษาและค่าใช้จ่ายเพิ่มเติมทั้งหมดนี้ คิดเกี่ยวกับเรื่องนี้? แก้ไข:หมายถึงการโพสต์สิ่งนี้บน StackOverflow ใครสามารถลงคะแนนเพื่อลบหรือตั้งค่าสถานะนี้เพื่อความสนใจได้


6
อธิบาย 2NF กับ 3NF ด้วยตัวอย่าง
ฉันมีปัญหากับฟอร์มปกติที่สอง (2NF) และฉันไม่สามารถแก้ไขได้โดยใช้ Google มันทำให้ฉันเป็นบ้าเพราะฉันเป็นครูและฉันไม่ต้องการสอนสิ่งผิด ๆ ให้กับนักเรียนของฉัน มามีตารางที่มี 5 ฟิลด์กัน Gradings = {StudentName, SubjectCode, SubjectName, #Exam, Grade} การพึ่งพาเป็นเช่นนี้: StudentName, SubjectCode, #Exam -> Grade SubjectCode -> SubjectName SubjectName -> SubjectCode ดังนั้นที่สำคัญผู้สมัคร 1 {StudentName, SubjectCode, #Exam}และที่สำคัญผู้สมัคร 2 {StudentName, subjectName, #Exam} แอตทริบิวต์ที่สำคัญคือ{StudentName, SubjectCode, SubjectName, #Exam}และแอตทริบิวต์ที่ไม่ใช่นายกรัฐมนตรีคือGrade ตามคำจำกัดความของรูปแบบปกติที่สองแอตทริบิวต์ที่ไม่ใช่นายกไม่สามารถขึ้นอยู่กับส่วนของคีย์ตัวเลือก แอ็ตทริบิวต์ที่ไม่ใช่ไพรม์เท่านั้น (เกรด) ไม่ได้ขึ้นอยู่กับส่วนของคีย์ตัวเลือกดังนั้นตารางนี้จะปรากฏเป็น 2NF ปัญหาคือฉันคิดว่ามีบางอย่างผิดปกติ (และฉันอาจผิด) ฉันคิดว่าผู้เข้าร่วมการศึกษาควรมีตารางของตนเอง …

2
ความสัมพันธ์แบบหนึ่งต่อหนึ่งเป็นมาตรฐานหรือไม่
พิจารณาว่าเรามีชุดข้อมูลสถิติขนาดใหญ่สำหรับบันทึก เช่น 20-30 INTคอลัมน์ มันจะดีกว่าหรือไม่ที่จะเก็บทั้งชุดไว้ในตารางเดียวเนื่องจากทั้งหมดนั้นเป็นของระเบียนหรือสร้างตารางอื่นที่เชื่อมโยงกับความสัมพันธ์แบบหนึ่งต่อหนึ่ง ข้อได้เปรียบของอดีตคือการหลีกเลี่ยงJOINและเข้าถึงข้อมูลสถิติทั้งหมดสำหรับบันทึกที่เกี่ยวข้องได้อย่างรวดเร็ว ข้อได้เปรียบของหลังคือการทำให้คอลัมน์เป็นระเบียบ คอลัมน์แรกนั้นเป็นแบบอ่านอย่างละเอียดและแบบที่สองเป็นแบบเขียนมาก แน่นอนฉันคิดว่ามันไม่มีผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพเนื่องจากฉันใช้ InnoDB กับการบล็อกระดับแถว โดยทั่วไปฉันต้องการทราบว่าเป็นประโยชน์หรือไม่ในการแยกชุดข้อมูลที่แตกต่างกันสำหรับบันทึกเดียว?

1
การสร้างใบแจ้งหนี้และการติดตาม
ทุก 2 สัปดาห์ระบบจะสร้างใบแจ้งหนี้ให้กับ บริษัท บริษัท จะได้รับใบแจ้งหนี้ในวันที่ 1 และ 16 ของทุกเดือน (มันจะทำงานผ่าน Cron Job ทุก 2 สัปดาห์มันสแกนผ่านตารางคำสั่งซื้อแล้วเพิ่มลงในตาราง 'ใบแจ้งหนี้' มีทางเลือกอื่นหรือไม่) มีรายการคำสั่งซื้อของลูกค้าในordersตารางและยังระบุ บริษัท ที่เป็นของ ( orders.company_id) invoiceตารางการคำนวณค่าใช้จ่ายทั้งหมดของการสั่งซื้อจากordersตาราง ฉันกำลังพยายามหาวิธีการออกแบบการติดตามใบแจ้งหนี้ที่สมเหตุสมผล บริษัท บางครั้งจะต้องส่งค่าธรรมเนียมหรือบางครั้งฉันส่งค่าธรรมเนียม ( invoice.amount) ฉันต้องการติดตามใบแจ้งหนี้ด้วยสิ่งต่อไปนี้: เมื่อ บริษัท ส่งจำนวนเงินให้ฉัน ฉันส่งจำนวนเงินให้ บริษัท เมื่อใด ได้รับเงินจำนวนเท่าใดจาก บริษัท ฉันส่งไปยัง บริษัท เท่าไร ฉันได้รับเงินเต็มจำนวนหรือไม่ (ถ้าไม่ฉันต้องอัปเดตสิ่งใดใน Db) สถานะใบแจ้งหนี้ (ส่งใบแจ้งหนี้, ยกเลิก, จำนวนเงินที่ได้รับ, จำนวนเงินที่ส่ง) นี่คือการออกแบบฐานข้อมูลฉันมาด้วย: …

3
แนวทางปฏิบัติที่ดีที่สุดสำหรับตารางประวัติ / เวลา
สมมติว่าฉันมีวัตถุมีบางฟิลด์ที่ฉันต้องการติดตามประวัติและบางฟิลด์ที่ฉันไม่ต้องการติดตามประวัติ จากมุมมองของการทำให้เป็นมาตรฐานคือสกีมาดังต่อไปนี้: CREATE TABLE MyObject AS ( MyObjectId INT IDENTITY NOT NULL PRIMARY KEY, MyObjectField1 VARCHAR(100) NOT NULL, MyObjectField2 VARCHAR(100) NOT NULL, MyObjectField3 VARCHAR(100) NOT NULL, MyObjectTrackedField1 VARCHAR(100) NOT NULL, MyObjectTrackedField2 VARCHAR(100) NOT NULL, MyObjectTrackedField3 VARCHAR(100) NOT NULL, ) CREATE TABLE MyObjectHistory AS ( MyObjectHistoryId INT IDENTITY NOT NULL PRIMARY …

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