คำถามติดแท็ก database-design

การพัฒนาสกีมาแนวคิดและ / หรือโมเดลเชิงตรรกะและ / หรือการตั้งค่าทางกายภาพของฐานข้อมูล

2
โอกาสในการออกแบบฐานข้อมูลใหม่: การออกแบบตารางใดที่จะใช้สำหรับการรวบรวมข้อมูลเซ็นเซอร์นี้
พื้นหลัง ฉันมีเครือข่ายเซ็นเซอร์ประมาณ 2,000 ตัวซึ่งแต่ละตัวมีจุดข้อมูลประมาณ 100 จุดที่เรารวบรวมในช่วงเวลา 10 นาที จุดข้อมูลเหล่านี้มักจะเป็นค่า int แต่บางจุดเป็นสตริงและลอย ข้อมูลนี้ควรเก็บไว้ 90 วันหากเป็นไปได้และยังมีประสิทธิภาพ การออกแบบฐานข้อมูล เมื่อมอบหมายงานครั้งแรกกับโครงการนี้ฉันเขียนแอป C # ที่เขียนไฟล์ที่คั่นด้วยเครื่องหมายจุลภาคสำหรับเซ็นเซอร์แต่ละตัว ในเวลาที่มีไม่มากเมื่อมีคนต้องการดูแนวโน้มเราจะเปิด csv ใน Excel และสร้างกราฟตามต้องการ สิ่งต่าง ๆ ขยายตัวและเราเปลี่ยนเป็นฐานข้อมูล MySQL ฉันสร้างตารางสำหรับเซ็นเซอร์แต่ละตัว (ใช่ฉันรู้จำนวนมากของตาราง!); มันใช้งานได้ดี แต่ก็มีข้อ จำกัด อยู่บ้าง ด้วยตารางจำนวนมากจึงเป็นไปไม่ได้ที่จะเขียนแบบสอบถามที่จะค้นหาข้อมูลในเซ็นเซอร์ทั้งหมดเมื่อค้นหาค่าเฉพาะ สำหรับรุ่นถัดไปฉันเปลี่ยนเป็น Microsoft SQL Server Express และวางข้อมูลเซ็นเซอร์ทั้งหมดลงในตารางขนาดใหญ่หนึ่งตาราง นอกจากนี้ยังใช้งานได้และช่วยให้เราสามารถสอบถามเพื่อค้นหาค่าในเซ็นเซอร์ทั้งหมดที่น่าสนใจ อย่างไรก็ตามฉันวิ่งเข้าไปในขีด จำกัด 10GB สำหรับเวอร์ชัน Express และตัดสินใจที่จะเปลี่ยนกลับเป็น MySQL แทนที่จะลงทุนใน …

4
เป็นความคิดที่ดีหรือไม่ที่จะใช้คำพ้องความหมายเพื่อหลีกเลี่ยงการสร้างตารางที่ซ้ำกัน
เรามี 3 ฐานข้อมูลเดียวกันที่แน่นอน ฐานข้อมูล 3 ทั้งหมดมีUsersตารางและผู้ใช้จะมีอยู่เสมอในฐานข้อมูล 3 ทั้งหมดด้วยการตั้งค่าเดียวกันแน่นอน เมื่อใดก็ตามที่เราต้องการเพิ่มหรือแก้ไขผู้ใช้เราต้องอัปเดตฐานข้อมูล 3 แห่ง จะเป็นการดีกว่าหรือไม่ที่จะลบUsersตารางออกจากฐานข้อมูล 2 และ 3 และแทนที่ด้วยSynonymจุดนั้นไปยังฐานข้อมูล 1 นี่คือข้อดีข้อเสียที่ฉันคิดได้: ข้อดี บำรุงรักษาง่ายขึ้น สามารถอัปเดตผู้ใช้ในที่เดียวแทนที่จะเป็น 3 รหัสผู้ใช้จะจับคู่ระหว่างฐานข้อมูล (สำคัญเนื่องจากแอปเสริมจำนวนมากอิงตามรหัสผู้ใช้) จุดด้อย อย่าคิดว่านี่เป็นขั้นตอนมาตรฐานดังนั้นอาจทำให้สับสน ผู้ใช้จะต้องมีการตั้งค่าที่เหมือนกันระหว่างฐานข้อมูล (จากคำตอบของ gbnด้านล่าง) หากฐานข้อมูล 1 ดับลงฐานข้อมูล 2 และ 3 จะไม่สามารถใช้งานได้ นอกจากนี้ยังมีปัญหาที่อาจเกิดขึ้นของข้อมูลที่ไม่สอดคล้องกันในกรณีที่มีการกู้คืน นี่เป็นตัวเลือกที่ฉันกำลังพิจารณาสำหรับตารางที่แตกต่างกันสองสามอย่างที่มีการตั้งค่าที่เหมือนกันระหว่างฐานข้อมูลไม่ใช่เฉพาะUsersตาราง ฉันใช้ผู้ใช้ในตัวอย่างเนื่องจากง่ายต่อการเข้าใจ

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

4
เครื่องมือออกแบบ PostgreSQL [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังจะออกแบบฐานข้อมูลที่จะทำงานกับ PostgreSQL ฉันคุ้นเคยกับเครื่องมืออันงดงามที่เรียกว่า MySQL Workbench สำหรับฐานข้อมูล MySQL มันมีประโยชน์และมันก็ดูดีที่ฉันคาดหวังจากซอฟต์แวร์การออกแบบฐานข้อมูล ถ้าฉันกำลังจะเรียนรู้เครื่องมือออกแบบฐานข้อมูลใหม่ฉันต้องการให้มันเป็นเครื่องมือที่ได้รับความนิยมมากที่สุด ดังนั้นคำถามของฉันคืออะไรเครื่องมือที่นิยมที่สุดสำหรับการออกแบบฐานข้อมูลใน PostgreSQL คืออะไร

2
ความปลอดภัยสำหรับ Application Developers ที่ทำงานกับ PL / SQL ใน Oracle
คุณจะจัดการกับการขาดสิทธิ์ระดับ Schema ใน Oracle ได้อย่างไร สถาปัตยกรรมความปลอดภัยของออราเคิลทำงานได้ดีสำหรับแอปพลิเคชันที่ต้องการเฉพาะสิทธิ์ระดับวัตถุและทำงานได้ดีสำหรับ DBA ที่ต้องการข้อ จำกัด เล็กน้อย อย่างไรก็ตามดูเหมือนว่าจะมีช่องโหว่ขนาดใหญ่ในสถาปัตยกรรมสำหรับโปรแกรมเมอร์ที่ทำการพัฒนาด้วยแอพพลิเคชั่นส่วนหน้าและ PL / SQL ในหลายสคีมา นี่คือตัวเลือกของฉันบางส่วนที่มีข้อเสีย: ทำให้แต่ละโปรแกรมเมอร์ทำการพัฒนาในสคีมาของตนเอง DBA จะให้สิทธิพิเศษระดับวัตถุแก่โปรแกรมเมอร์ที่ต้องการ การพัฒนาบรรจุภัณฑ์ใด ๆ จะต้องทำโดย DBA ข้อเสียที่สำคัญคือโปรแกรมเมอร์จะใช้ฐานข้อมูลเช่น bit bucket เพื่อลดความเสียหายของประสิทธิภาพของฐานข้อมูล ฉันต้องการโปรแกรมเมอร์ที่จะพัฒนาในฐานข้อมูล แต่วิธีนี้จะทำให้หมดกำลังใจอย่างมาก ให้ชื่อผู้ใช้ / รหัสผ่านของโปรแกรมเมอร์แก่ schema ที่ต้องการพัฒนามากกว่าสิบตัวอนุญาตให้สคีมาของแอปพลิเคชันเหล่านี้เพื่อสร้างโพรซีเดอร์ตารางและอื่น ๆ ข้อเสียของวิธีการนี้คือโปรแกรมเมอร์ต้องดูแลการเข้าสู่ระบบหลายครั้ง ไม่ค่อยเข้าสู่ระบบในฐานะตัวเอง การพัฒนาข้ามสคีก็ยากเช่นกัน ให้สิทธิการพิสูจน์ตัวตนพร็อกซีโปรแกรมเมอร์แก่แต่ละสคีมาที่ต้องพัฒนา สิ่งนี้ทำให้พวกเขาล็อกอินด้วยตนเองโดยไม่ต้องให้สิทธิพิเศษนอกเหนือจากสิทธิ์พร็อกซี ข้อเสียรวมถึงโปรแกรมเมอร์ที่ต้องรักษาการเชื่อมต่อแยกกันสำหรับแต่ละสคีมาที่พร็อกซีสำหรับการพัฒนาข้ามสคีมานั้นยุ่งยากกว่าเนื่องจากการเชื่อมต่อจะต้องมีการเปลี่ยนแปลงอยู่ตลอดเวลาและแพ็คเกจที่ใช้การเชื่อมโยงฐานข้อมูลสาธารณะ ให้สิทธิ์ DBA สำหรับโปรแกรมเมอร์แต่ละคน - ข้อเสียนี่คือความปลอดภัย ไม่มีโปรแกรมเมอร์สคีมาสามารถถูกเก็บออกจากสคีมาใด ๆ และโปรแกรมเมอร์ใด ๆ …

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

1
NONCLUSTERED INDEX ที่ยังไม่ได้ใช้ยังสามารถเพิ่มความเร็วการสืบค้นได้หรือไม่?
นี่เป็นสถานการณ์ที่แปลก แต่ฉันหวังว่าบางคนจะมีคำตอบ ในบางช่วงการแก้ไขปัญหาประสิทธิภาพการทำงานของเราได้เพิ่ม nonclustered INDEX sp_BlitzIndexในตารางตามที่ได้รับการร้องขอจาก เราตรวจสอบการใช้งานในวันถัดไปและพบว่ามีการอ่าน0 ครั้ง (การสแกน 0 ครั้ง / การค้นหาการค้นหาเดี่ยว 0 ครั้ง ) ดังนั้นเราจึงปิดการใช้งาน ในนาทีถัดไปเราได้รับการร้องเรียนเกี่ยวกับแอพพลิเคชั่นช้า (ปัญหาประสิทธิภาพ) ที่เราพยายามตรวจสอบและแก้ไขในตอนแรกเมื่อเราเพิ่ม INDEX ทีนี้ฉันรู้แล้วในทางทฤษฎีฟังดูเป็นเรื่องบังเอิญอย่างแท้จริง ดัชนีถูกสรรพสิ่ง, วัด, ที่ไม่ได้ใช้ ปิดการใช้งานไม่ควรทำให้ประสิทธิภาพการทำงานของแบบสอบถามลดลง แต่มันเกือบจะบังเอิญเกินไป คำถาม ดังนั้นคำถามของฉันก็เพียงพอแล้ว: มันเป็นไปได้ทุกที่ , ว่า nonclustered INDEX ซึ่งมีการใช้งานสถิติ (จาก DMVs / การsp_BlitzIndex) แสดงการใช้งาน NO ยังคงได้รับการช่วยให้ประสิทธิภาพการค้นหาบนโต๊ะอย่างใดได้รับผลกระทบหรือไม่

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
ทางเลือก EAV สำหรับฟิลด์แบบไดนามิกในคลังข้อมูลสคีมา
ฉันต้องการสนับสนุนฟิลด์และค่าแบบไดนามิกในคลังข้อมูลขนาดใหญ่สำหรับจัดเก็บบันทึกคำขอ API กรณีผู้ใช้ของฉันคือฉันต้องเก็บสตริงแบบสอบถามคำขอ API ทั้งหมดและสามารถดำเนินการค้นหากับพวกเขาในอนาคต (ดังนั้นจึงไม่ใช่แค่การจัดเก็บ ดังนั้นฉันไม่สามารถใช้หยดสำหรับพวกเขา) เช่น http://example.com/?action=test&foo=abc&bar=def... ฉันต้องเก็บการfield => valueแมปทั้งหมดเช่น(action => test), (foo => abc), (bar => def)และเนื่องจากฟิลด์นั้นเป็นแบบไดนามิกวิธีแก้ปัญหาเดียวที่ฉันได้พบคือการใช้เอนทิตี - แอตทริบิวต์ - ค่า - อย่างไรก็ตามผู้คนพูดว่ามันเป็นการออกแบบที่แย่มาก ดังนั้นให้พิจารณากรณีการใช้งานของฉันด้านบนสิ่งที่จะเป็นทางเลือกที่เหมาะสมกับ EAV? สคีมาปัจจุบันของฉันโดยใช้ KAV ตารางrequests (id, timestamp, uri) เช่น(1, 149382220, '/') ตารางparams (request_id, key, value) เช่น(1, 'action', 'test'), (1, 'foo', 'abc'), (1, 'bar', 'def') …

5
มันเป็นความคิดที่ดีหรือไม่ที่จะสร้าง foreign key บนตารางใน schema ที่แตกต่างกันในฐานข้อมูลเดียวกันสำหรับแอปพลิเคชันขนาดใหญ่?
ฉันกำลังทำงานกับการถ่ายโอนแอปพลิเคชันบนเว็บขนาดใหญ่ / sql ไปยังเซิร์ฟเวอร์เฉพาะ แอปพลิเคชันนี้อยู่ในสคีมาเดียวกับ 70 แพ็คเกจของโค้ดโปรแกรม แอปพลิเคชั่นนี้สร้างขึ้นประมาณ 15 คนในเวลาที่ต่างกัน และมันก็เป็นเรื่องปกติที่เราจะต้องสร้างกุญแจต่างประเทศในตารางอ้างอิงในแบบแผนต่าง ๆ เพราะมันมีความมั่นใจและรักษาฐานข้อมูลได้ดีมากเพราะเราไม่จำเป็นต้องเก็บตารางการอ้างอิงเดียวกันไว้ในแบบแผนต่าง ๆ แต่อย่างไรก็ตาม DBA ของฉัน (ผู้ที่สร้างอินสแตนซ์ใหม่ด้วย DB และคัดลอกแอปพลิเคชันของฉันภายในโซนโซลาริส) กล่าวว่ารุนแรงมากในวันนี้ "กุญแจต่างประเทศใน schemas ที่แตกต่างกันนั้นชั่วร้ายและคุณต้องทำลายมัน!" เขาไม่ได้อธิบายมุมมองของเขา เป็นความคิดที่ดีหรือไม่ที่ทำเช่นนั้นกับแอพพลิเคชั่นขนาดใหญ่?

2
วิธีที่เร็วที่สุดในการเปลี่ยนประเภทข้อมูลคีย์ดัชนีที่จัดทำตาราง 600GB จาก INT เป็น BIGINT
ฉันต้องการเปลี่ยนประเภทข้อมูลจาก INT เป็น BIGINT ในตาราง MySQL 600GB คอลัมน์มีดัชนีที่ไม่ซ้ำกัน ฉันอาจจะดีกับ INT ที่ไม่ได้ลงนาม แต่ฉันคิดว่าการเปลี่ยนแปลงนั้นมิฉะนั้น BIGINT จะเจ็บปวดเหมือนกัน เอ็นจิ้นของตารางคือ InnoDB อะไรจะง่ายขึ้น: แก้ไขตาราง โครงสร้างการคัดลอกและ INSERT INTO (SELECT *) ตารางการดัมพ์และการเปลี่ยนนิยามตารางไฟล์ดัมพ์ มีอะไรอีกไหม ปรับปรุง: ตามที่ร้องขอ MySQL เวอร์ชั่น 5.5.15 ไม่มีคีย์ต่างประเทศและสร้างตาราง: CREATE TABLE `tbl` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `created_at` datetime NOT NULL, `tid` bigint(20) …

4
ค้นหาเพื่อนบ้านที่ใกล้ที่สุดอย่างรวดเร็วในพื้นที่ 150 มิติ
ฉันต้องการสร้างฐานข้อมูลโดยใช้ RDBMS ที่เป็นไปได้ มันจะมีตารางที่มีประมาณ 150 คอลัมน์ มีวัตถุประสงค์เพื่อทำการค้นหาเพื่อนบ้านที่ใกล้ที่สุดของวัตถุอื่น ๆ มันคือ NNS ในพื้นที่ 150 มิติ ฉันพยายามใช้วิธีที่ชัดเจนบางอย่างเช่นระยะทาง L1 หรือ L2 แต่แน่นอนว่าต้องใช้เวลานานสำหรับตารางที่มีหลายแถว ฉันพยายามลองดู KD-tree (หมายเหตุฉันไม่ได้ทดสอบ) และ PG-Strom แต่มันไม่ใช่วิธีแก้ปัญหาที่ดีสำหรับข้อมูลที่มีหลายมิติ ฉันสามารถปรับปรุงความเร็วของการค้นหาที่อธิบายโดยใช้วิธีการทางคณิตศาสตร์ (เช่น KD-tree) หรือวิธีการทางเทคโนโลยี (เช่น PG-Strom) ได้หรือไม่? ฉันจะพยายามใช้ RDBMS ใด ๆ ที่อนุญาตให้ปรับปรุงความเร็วของ NNS แต่ MySQL และ PostgreSQL นั้นเป็น DBMS ที่เหมาะสมที่สุดสำหรับฉัน

2
วิธีการสร้างแบบจำลองข้อมูลที่ดีที่สุดเพื่อจัดการกับคีย์ต่างประเทศที่ซ้ำซ้อนในฐานข้อมูลเกี่ยวกับแบบสำรวจคำถามและคำตอบ
ฉันกำลังมองหาคำแนะนำเกี่ยวกับวิธีการสร้างแบบจำลองเชิงสัมพันธ์ที่ดีที่สุดในการจัดเก็บแบบสอบถามคำถามและคำตอบ ฉันกำลังมองหาวิธีใดวิธีหนึ่งจากสองวิธีด้านล่างนี้ดูดีที่สุดหรือเป็นทางเลือกอื่นสำหรับทั้งสองวิธี ฉันมีเอนทิตีเหล่านี้อย่างน้อย: คำถาม สำรวจ คน และอย่างน้อยความสัมพันธ์เหล่านี้: แบบสำรวจแต่ละแบบมีคำถาม 1 ข้อขึ้นไป คำถามแต่ละข้ออาจใช้ในการสำรวจ 0 ครั้งขึ้นไป แต่ละคนอาจทำการสำรวจ 0 ครั้งขึ้นไป ที่นี่ฉันเจอปัญหา: วิธีจำลองแบบการตอบสนองต่อคำถามสำรวจโดยบุคคล ต่อไปนี้เป็นสองวิธีที่ฉันได้พิจารณาซึ่งไม่ได้ดูดีสำหรับฉันเลย ไดอะแกรมที่นี่เรียบง่ายเป็นอย่างมากเพื่อแสดงให้เห็นปัญหา วิธีที่ 1: สิ่งที่ฉันไม่ชอบเกี่ยวกับวิธีการนี้: survey_person_question_responseตารางมีสองคอลัมน์ที่แตกต่างกันที่อ้างถึงการสำรวจ: survey_question_survey_idและsurvey_person_survey_id มันจะเป็นข้อผิดพลาดที่มีsurvey_idการอ้างอิงที่แตกต่างกันในหนึ่งแถวสำหรับสองคอลัมน์นี้ Survey_question จะต้องมาจากแบบสำรวจเดียวกับคนที่เข้าร่วมใน survey_person ฉันไม่เห็นวิธีที่ดีในการบังคับใช้ ดูเหมือนว่าสิ่งที่ฉันทำที่นี่คือการสร้างความสัมพันธ์ระหว่างสองความสัมพันธ์ นั่นทำให้ฉันรู้สึกผิดด้วยเหตุผลบางอย่าง วิธีที่ 2: พยายามหลีกเลี่ยงสอง FKs จากวิธีที่ 1 ที่ควรอ้างอิงถึงค่าเดียวกัน ... สิ่งที่ฉันไม่ชอบเกี่ยวกับวิธีการนี้: ไม่มีการบังคับใช้ว่าquestion_idและsurvey_idFK นั้นมาจากsurvey_questionคู่ที่ถูกต้อง ไม่มีการบังคับใช้ว่าsurvey_idและperson_idFK นั้นมาจากsurvey_personคู่ที่ถูกต้อง คำแนะนำใด ๆ เกี่ยวกับ: ไม่ว่าหนึ่งในวิธีการเหล่านี้เป็นวิธีการทั่วไปหรือไม่ ข้อดีข้อเสียของหนึ่งในวิธีการเหล่านี้มากกว่าที่อื่น …

3
ระบบหลายผู้เช่าที่ควรใช้ SQL Server 2016, Shard หรือแยกผู้เช่าผ่านฐานข้อมูลแยกต่างหากต่อผู้เช่าหรือไม่?
รับกรณีการใช้งาน: ข้อมูลผู้เช่าไม่ควรพูดคุยข้าม, ผู้เช่ารายหนึ่งไม่ต้องการข้อมูลของผู้เช่ารายอื่น ผู้เช่าแต่ละรายอาจมีปริมาณข้อมูลประวัติขนาดใหญ่ได้ SQL Server โฮสต์อยู่ในอินสแตนซ์ของ AWS EC2 ผู้เช่าแต่ละรายอยู่ห่างจากพื้นที่ทางภูมิศาสตร์ มีความตั้งใจที่จะใช้เครื่องมือสร้างภาพข้อมูลบุคคลที่สามเช่น PowerBI Embedded คาดว่าปริมาณข้อมูลจะเพิ่มขึ้นเมื่อเวลาผ่านไป ค่าใช้จ่ายของระบบถูก จำกัด การแก้ปัญหาจะต้องสามารถบำรุงรักษาได้โดยไม่ต้องมี DBA ผลิต 24/7 การแก้ปัญหาควรจะสามารถปรับขนาดในแนวนอน จำนวนผู้เช่าทั้งหมดน้อยกว่า 50 สิ่งที่จะเป็นสถาปัตยกรรมที่แนะนำมีการใช้งานอ้างอิงสำหรับกรณีการใช้งานนี้หรือไม่? ฉันเชื่อว่าหลายคนอาจประสบปัญหานี้แล้วสำหรับการพัฒนาซอฟต์แวร์ระดับองค์กร ผมคิดว่านี่เป็นสถานการณ์ที่แตกต่างจากการจัดการตัวเลขการเติบโตของผู้เช่าในหลายลูกสถาปัตยกรรมฐานข้อมูล กรณีการใช้ที่กล่าวถึงในคำถามนั้นเกี่ยวข้องกับผู้เช่าจำนวนมากซึ่งแตกต่างจากการมีผู้เช่ารายใหญ่น้อยมาก (50) คน สถาปัตยกรรมที่กล่าวถึงอาจเป็นวิธีแก้ปัญหาที่นี่ซึ่งเป็นสิ่งที่ฉันต้องการทราบเพิ่มเติมเกี่ยวกับ

5
วิธีการซ่อน / ปิดการใช้งานตารางโดยไม่ต้องวางเพื่อตรวจสอบความซ้ำซ้อน?
ฉันต้องรักษาและขยายระบบเดิมซึ่งมีวิธีการบริการเว็บและตารางฐานข้อมูลที่ไม่ได้ใช้อีกต่อไป เนื่องจากฉันไม่แน่ใจว่าตารางซ้ำซ้อนจริง ๆ ฉันกลัวที่จะทิ้งมัน มีวิธีอื่นที่จะทำให้ได้ผลที่เหมือนกัน (ไม่สามารถใช้ตารางได้อีกต่อไป) โดยไม่ทิ้งมันไว้? ความคิดของฉันคือการถ่ายโอนไปยังคีมาที่แตกต่างกัน (เช่นDeleted) dboจากค่าเริ่มต้นปัจจุบัน IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'Deleted') BEGIN EXEC('CREATE SCHEMA Deleted') END ALTER SCHEMA Deleted TRANSFER dbo.TableName; มีตัวเลือกอื่น ๆ หรือมีข้อเสียเปรียบกับวิธี schema?

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