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

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

3
วิธีการนำเอนทิตีไปใช้ด้วยจำนวนแอตทริบิวต์สูงสุดที่ไม่รู้จัก?
ฉันกำลังออกแบบโปรแกรมจำลองเบสบอลและฉันพบปัญหาในการออกแบบสคีบ็อกซ์ ปัญหาที่ฉันมีคือฉันต้องการติดตามจำนวนการทำคะแนนในแต่ละโอกาส วิธีที่ฉันทำในโปรแกรมจริงคือการใช้อาร์เรย์แบบไดนามิกที่เพิ่มขึ้นสำหรับการเล่นแต่ละโอกาส สำหรับผู้ที่ไม่คุ้นเคยกับเกมเบสบอลเกมมักจะมีเก้าโอกาสนานเว้นแต่เกมจะถูกผูกไว้เมื่อสิ้นสุดโอกาสที่ 9 เกมเบสบอลจึงมีความยาวไม่บึกบึนซึ่งหมายความว่าฉันไม่สามารถออกแบบฐานข้อมูลให้มีเพียง 9 คอลัมน์สำหรับการวิ่งที่ทำคะแนนในแต่ละโอกาส (ในทางเทคนิค 18 (9-9 อินนิ่ง * 2 ทีม) แนวคิดหนึ่งที่ฉันมีคือทำให้อนุกรมอาร์เรย์ และเข้ารหัสเป็น Base64 ก่อนเก็บไว้ในฐานข้อมูลอย่างไรก็ตามฉันไม่รู้ว่านี่เป็นเทคนิคที่ดีในการใช้หรือไม่และฉันสงสัยว่าใครมีความคิดที่ดีกว่า ในกรณีที่มีความสำคัญฐานข้อมูลที่ฉันกำลังพัฒนาคือ PostgreSQL ข้อเสนอแนะใด ๆ ที่ชื่นชมอย่างมาก! ขอบคุณ!

3
SQL Server: ให้สิทธิ์การเข้าถึงแก่ผู้ใช้ในมุมมองและไม่ได้อยู่ในตาราง
ฉันมีอินสแตนซ์ SQL Server 2012 ที่มีฐานข้อมูลน้อย ในหนึ่งในนั้นฉันสร้างมุมมองที่เลือกตารางมากกว่าฐานข้อมูล ฉันต้องการให้ผู้ใช้สามารถเลือกมุมมองนั้น แต่ต้องไม่เลือกตาราง มุมมองถูกสร้างขึ้นอย่างแน่นอนเนื่องจากผู้ใช้ไม่สามารถเลือกตาราง ฉันอ่าน/programming/368414/grant-select-on-a-view-not-base-tableและhttp://msdn.microsoft.com/en-us/library/ms188676 aspxและยังคงไม่ทำงาน หากฉันทำGRANT SELECT TABLE TO USERตารางทั้งหมดผู้ใช้สามารถเลือกมุมมองได้ แต่ถ้าฉันเพิกถอนตารางใด ๆ ก็ล้มเหลว นี่ควรเป็นขั้นตอนง่าย ๆ ที่จะทำ แต่ฉันมีปัญหาในการทำให้มันใช้งานได้ ฉันเคยเห็นมันเกิดขึ้นมาก่อน (เจ้าของอินสแตนซ์ให้ฉันเข้าถึงมุมมองและไม่ได้ทำกับตารางของมัน) แต่ฉันไม่สามารถทำได้หรือหาคนที่รู้วิธี ใครช่วยสอนให้ฉันเกี่ยวกับวิธีการทำมันหรือตัวอย่างรหัส? เมื่อผู้ใช้SELECTsมุมมองที่ฉันได้รับข้อความ: ได้รับอนุญาต SELECT ถูกปฏิเสธบนวัตถุ<TABLE>ฐานข้อมูลคี<DB>dbo ถ้าฉันให้สิทธิ์เลือกในตารางนั้นข้อความแสดงข้อผิดพลาดจะเปลี่ยนชื่อตารางเป็นตารางอื่นที่มุมมองอ่าน

3
Schema Migration: เครื่องมือข้อมูลเซิร์ฟเวอร์ SQL เทียบกับ Liquibase และ Flyway
นี่อาจดูเหมือนคำถามงี่เง่า แต่ฉันได้ดูวิธีแก้ไขปัญหาโอเพนซอร์ซสำหรับการโยกย้ายสคีมาคือ Liquibase และ Flyway อย่างไรก็ตามเจ้านายของฉันบอกฉันว่า SQL Server Data Tools (SSDT) ​​ประสบความสำเร็จในงานเดียวกัน ฉันไม่แน่ใจว่าตกลง แต่ฉันพบน้อยมากบนอินเทอร์เน็ตที่เปรียบเทียบโดยตรงกับ Liquibase และ / หรือ Flyway มุมมองของฉันคือ SSDT เป็นเครื่องมือในการพัฒนาการสร้างแบบจำลองข้อมูลและการออกแบบสำหรับ SQL Server และยังสนับสนุนการเปรียบเทียบสคีมา (และการสร้างสคริปต์ของมัน) และการควบคุมแหล่งที่มา มันจัดการกับปัญหาที่แตกต่างกันแม้ว่าอาจมีเหลื่อมซ้อนกับ Liquibase / Flyway ในบางแง่มุมของการโยกย้ายสคีมา แต่ในฐานะที่เป็นเครื่องมือในการโยกย้ายสคีมาโดยรวม Liquibase และ Flyway เป็นเครื่องมือที่ทุ่มเทอย่างเต็มที่ในขณะที่ SSDT นั้นมีความสำคัญมากกว่าสำหรับการออกแบบและพัฒนาฐานข้อมูล ความคิดเห็นใด ๆ ที่จะได้รับการชื่นชมมากแม้ว่ามันจะบอกว่าไม่มีการเปรียบเทียบและ SSDT ไม่ใช่เครื่องมือโยกย้ายสคีมาต่อ
11 schema  ssdt  migration 

2
สคีมาเปลี่ยนกลุ่ม "สถานะว่าง" หรือพวกมันถูกจัดการอย่างโปร่งใสหรือไม่?
องค์กรของฉันวางแผนที่จะนำกลุ่มความพร้อมใช้งานของ SQL Server 2012 มาใช้และฉันพยายามที่จะเข้าใจว่าจะมีผลกระทบอย่างไร (ถ้ามี) ในกระบวนการอัปเกรดแอปพลิเคชันของเรา เราปล่อยการอัปเดตแอปพลิเคชันในรอบ 8 สัปดาห์และการเปิดตัวใด ๆ อาจรวมถึงการเปลี่ยนแปลงสคีมาและ / หรือการย้ายข้อมูล สิ่งที่ฉันพยายามทำความเข้าใจคือว่าโซลูชัน HA / DR จะจัดการกับการเปลี่ยนแปลง schema อย่างโปร่งใสหรือไม่ (คอลัมน์ใหม่, ดัชนีเพิ่มเข้ากับ Secondaries) หรือเป็นการแทรกแซงด้วยตนเองที่จำเป็นในการสร้าง schema ในแต่ละอินสแตนซ์ ส่วนการโยกย้ายข้อมูลที่ฉันสมมติว่ามีการจัดการอย่างโปร่งใส แต่ต้องการยืนยันเช่นกัน ฉันเดาว่าฉันกำลังสร้างสมมุติฐานแบบครอบคลุมว่าพฤติกรรมเหล่านี้ไม่แตกต่างกันไปตามการกำหนดค่ากลุ่มความพร้อมใช้งานซึ่งอาจเป็นเท็จเช่นกัน โปรดแจ้งให้เราทราบ โดยสังเขป; ในแอปพลิเคชันของฉันที่ระบุฉันสามารถเปลี่ยนตารางที่มีขนาดใหญ่มาก (10s ถึง 100s ของเรคคอร์ด) โดยการเพิ่มคอลัมน์ลงไป บางคอลัมน์อาจเป็น "ใหม่สุทธิ" เพื่อให้สามารถใช้ประโยชน์จากฟังก์ชันการเปลี่ยนแปลงแบบแผนของ Enterprise Online ได้ คอลัมน์อื่นอาจเป็นการ refactoring ของคอลัมน์ที่มีอยู่ (FullName ได้รับการแบ่งเป็น FirstName …

3
การออกแบบสคีมาสำหรับผลิตภัณฑ์ที่มีหลายรูปแบบ / คุณลักษณะ?
ฉันใช้ MySQL แนวคิดนี้คล้ายกับ shopify ด้วยแนวคิดที่แตกต่างกันดังนั้นผู้ใช้จะเพิ่มผลิตภัณฑ์ของตัวเองด้วยตัวแปรและคุณลักษณะหลายประเภท จากการวิจัยทั้งหมดที่ฉันทำไปแล้วดูเหมือนจะเป็นทางออกที่ดีที่สุดสำหรับฉันและฉันแค่สงสัยว่ามีอะไรผิดปกติกับสคีมาดังต่อไปนี้และอัพไซด์ / ข้อเสียคืออะไร? ขอบคุณ Table: products ------------------------------ | ID | ProductName | |----------------------------| | 1 | Leather Wallet Case | | 2 | Jeans | | 3 | Power Bank | Table: products_variants ------------------------------- | ID | ProductId | ParentId | Variant | VariantName | …

3
อะไรคือผลของการไม่ระบุ NOT NULL ใน PostgreSQL สำหรับฟิลด์ที่ไม่สามารถเป็นโมฆะได้?
ฉันมีแอปพลิเคชัน (ข้อมูลถูกเก็บไว้ใน PostgreSQL) ซึ่งส่วนใหญ่ของเขตข้อมูลในตารางจะไม่ว่างเสมอ แต่สคีมาสำหรับตารางเหล่านี้ไม่ได้บังคับใช้สิ่งนี้ ตัวอย่างเช่นดูที่ตารางปลอมนี้: CREATE TABLE "tbl" ( "id" serial, "name" varchar(40), "num" int, "time" timestamp PRIMARY KEY ("id"), UNIQUE ("id") ); นอกจากนี้ยังname, num, timeไม่ได้ระบุไว้อย่างชัดเจนว่าNOT NULLในความเป็นจริงพวกเขาเป็นเพราะการบังคับใช้ที่เกิดขึ้นในด้านการประยุกต์ใช้ ความรู้สึกของฉันคือมันควรจะเปลี่ยน แต่ความแตกต่างคือระดับแอปพลิเคชันทำให้แน่ใจว่าค่า Null ไม่สามารถปรากฏที่นี่และไม่มีใครปรับเปลี่ยนตารางด้วยตนเอง คำถามของฉันคืออะไรประโยชน์ (ประสิทธิภาพการจัดเก็บความสอดคล้องอย่างอื่น) และข้อเสีย (สมมติว่าฉันได้ตรวจสอบแล้วว่าไม่มีโมฆะในปัจจุบันและจากตรรกะทางธุรกิจควรไม่มีโมฆะ) โดยการตั้งค่าNOT NULLข้อ จำกัด ที่ชัดเจน? เรามีขั้นตอนการตรวจสอบโค้ดที่ดีและมีเอกสารที่ดีพอสมควรดังนั้นความเป็นไปได้ที่คนใหม่บางคนจะส่งมอบสิ่งที่ทำลายข้อ จำกัด นี้ไม่เพียงพอที่จะพิสูจน์การเปลี่ยนแปลง นี่ไม่ใช่การตัดสินใจของฉันดังนั้นนี่คือเหตุผลที่ฉันกำลังมองหาเหตุผลอื่น ๆ ในความคิดของฉันถ้าสิ่งที่ไม่สามารถเป็นโมฆะและฐานข้อมูลช่วยให้คุณระบุว่าสิ่งที่ไม่เป็นโมฆะ - เพียงแค่ทำมัน โดยเฉพาะอย่างยิ่งถ้าการเปลี่ยนแปลงนั้นง่ายมาก

3
การบันทึกทุกการเปลี่ยนแปลงของแถวในฐานข้อมูลนั้นถูกเก็บไว้อย่างไร?
ในโครงการที่ฉันกำลังดำเนินการการเปลี่ยนแปลงแถวในบางตารางของฐานข้อมูลต้องถูกติดตามเพื่อการตรวจสอบเพิ่มเติมหรือย้อนกลับ มันจะต้องง่ายต่อการค้นหาผู้ที่แก้ไขแถวจากที่อยู่ IP และเวลาใดและสามารถกู้คืนเวอร์ชันก่อนหน้าได้ สิ่งที่คล้ายกันนั้นใช้โดย Stack Exchange เมื่อฉันเปลี่ยนคำถามของคนอื่นมันเป็นไปได้ที่จะพบว่าฉันเปลี่ยนมันและย้อนกลับการเปลี่ยนแปลง เทคนิคทั่วไปที่ใช้ในการจัดเก็บการเปลี่ยนแปลงทุกอย่างกับวัตถุในฐานข้อมูลคืออะไรเนื่องจากสคีมาปัจจุบันของฉันมีคุณสมบัติเหมือนกัน (ด้านล่าง) ส่วนใหญ่ที่เป็นแอปทางธุรกิจโดยเฉลี่ย วัตถุที่มีขนาดค่อนข้างเล็ก: อาจจะมีบางnvarchar(1000)ตัวอย่างเช่น แต่ไม่ blobs ใหญ่ของข้อมูลไบนารีหนึ่งนี้ถูกเก็บไว้โดยตรงบนดิสก์และเข้าถึงได้โดยตรงและไม่ผ่าน Microsoft SQL filestream, โหลดฐานข้อมูลค่อนข้างต่ำและฐานข้อมูลทั้งหมดได้รับการจัดการโดยเครื่องเสมือนหนึ่งเครื่องบนเซิร์ฟเวอร์ การเข้าถึงเวอร์ชันก่อนหน้าไม่จำเป็นต้องรวดเร็วเท่ากับการเข้าถึงเวอร์ชันล่าสุด แต่ยังต้องเป็นเวอร์ชันล่าสุดและไม่ช้าเกินไป² <TL-DR> ฉันคิดเกี่ยวกับกรณีต่อไปนี้ แต่ฉันไม่มีประสบการณ์จริงกับสถานการณ์เหล่านั้นดังนั้นฉันจะได้ยินความคิดเห็นของผู้อื่น: เก็บทุกอย่างไว้ในตารางเดียวกันโดยแยกแถวตาม ID และรุ่น IMO มันโง่มากและจะเจ็บไม่ช้าก็เร็วในระดับประสิทธิภาพ ด้วยวิธีนี้มันเป็นไปไม่ได้ที่จะตั้งระดับความปลอดภัยที่แตกต่างกันไปเป็นไอเท็มล่าสุดและการติดตามเวอร์ชั่น ในที่สุดทุกคำถามจะมีความซับซ้อนในการเขียน ที่จริงแล้วในการเข้าถึงข้อมูลที่ทันสมัยฉันจะถูกบังคับให้จัดกลุ่มทุกอย่างด้วยรหัสและดึงข้อมูลในแต่ละกลุ่มเวอร์ชันสุดท้าย เก็บเวอร์ชันล่าสุดไว้ในตารางเดียวและในทุก ๆ การเปลี่ยนแปลงให้คัดลอกเวอร์ชันที่ล้าสมัยไปยังตารางอื่นในสคีมาอื่น ข้อบกพร่องคือทุกครั้งที่เราเก็บทุกค่าแม้ว่ามันจะไม่เปลี่ยนแปลง การตั้งค่าการเปลี่ยนแปลงที่จะnullไม่ได้เป็นวิธีการแก้ปัญหาตั้งแต่ฉันยังต้องติดตามเมื่อค่าที่มีการเปลี่ยนแปลงไปหรือจากnullnull เก็บเวอร์ชันล่าสุดไว้ในตารางเดียวและรายการคุณสมบัติที่เปลี่ยนแปลงด้วยค่าก่อนหน้าในตารางอื่น นี้ดูเหมือนว่ามีสองข้อบกพร่อง: binary(max)หนึ่งที่สำคัญที่สุดคือว่าวิธีเดียวที่จะเรียงลำดับประเภทที่แตกต่างกันของค่าก่อนหน้านี้ในคอลัมน์เดียวกันคือการมี อย่างที่สองคือฉันเชื่อว่ามันจะยากกว่าที่จะใช้โครงสร้างดังกล่าวเมื่อแสดงเวอร์ชันก่อนหน้าแก่ผู้ใช้ ทำสิ่งเดียวกันกับในสองประเด็นก่อนหน้านี้ แต่เก็บรุ่นไว้ในฐานข้อมูลแยกต่างหาก ประสิทธิภาพอาจเป็นเรื่องที่น่าสนใจเพื่อหลีกเลี่ยงการชะลอการเข้าถึงเวอร์ชันล่าสุดโดยให้มีเวอร์ชันก่อนหน้าในฐานข้อมูลเดียวกัน ยังฉันเชื่อว่ามันเป็นการเพิ่มประสิทธิภาพก่อนวัยอันควรและจะต้องทำก็ต่อเมื่อมีหลักฐานที่แสดงว่ารุ่นเก่าและรุ่นล่าสุดในฐานข้อมูลเดียวกันเป็นคอขวด </ TL-DR> ¹ตัวอย่างเช่นจะไม่สามารถจัดเก็บการเปลี่ยนแปลงลงในไฟล์บันทึกได้เนื่องจากจะทำเพื่อบันทึก HTTP …

2
ฉันจะสลายตารางนี้โดยไม่สูญเปล่าได้หรือไม่?
ฉันสะดุดกับปัญหาการออกแบบฐานข้อมูลที่ไม่ได้อยู่ในลีกของฉันและกูรู DBA ของฉันที่ไปใช้ยังอยู่ในช่วงซ้อมหนีไฟ ในสาระสำคัญฉันมีตารางที่มีคีย์หลักต่อไปนี้ (PK สำหรับความกะทัดรัด): child_id integer parent_id integer date datetime child_idและparent_idเป็นกุญแจต่างประเทศในตารางกิจการ ตาราง "child" นั้นมี foreign key ไปยังตาราง "parent" และแท้จริงแล้วแต่ละตัวchild_idจะอ้างอิงเหมือนกันparent_idตามที่คาดไว้โดยตารางข้างต้น ในความเป็นจริงปรากฎว่ามีโค้ดพิเศษบางอย่างที่ทำให้ทั้งสองซิงค์กันอยู่ ซึ่งทำให้สามเณรการปรับสภาพ overenthusiastic นี้พูดว่า "ฉันควรลบความซ้ำซ้อนแทน!" ฉันย่อยสลายต่อไปนี้: Table_1 PK: child_id integer date datetime Table_2 PK: parent_id integer date datetime Table_3: (already exists) child_id integer PRIMARY KEY parent_id integer FOREIGN KEY …

2
ค้นหาแถวที่มีเลขจำนวนเต็มตามลำดับที่กำหนด
ปัญหา หมายเหตุ: ผมหมายถึงลำดับคณิตศาสตร์ไม่ใช่กลไกลำดับของ PostgreSQL ฉันมีตารางที่แสดงลำดับของจำนวนเต็ม ความหมายคือ: CREATE TABLE sequences ( id serial NOT NULL, title character varying(255) NOT NULL, date date NOT NULL, sequence integer[] NOT NULL, CONSTRAINT "PRIM_KEY_SEQUENCES" PRIMARY KEY (id) ); เป้าหมายของฉันคือการหาแถวโดยใช้ลำดับที่กำหนด กล่าวคือแถวที่sequenceเขตข้อมูลเป็นลำดับที่มีการเรียงลำดับที่กำหนด (ในกรณีของฉันลำดับจะเรียงตามลำดับ) ตัวอย่าง สมมติว่าตารางมีข้อมูลต่อไปนี้: +----+-------+------------+-------------------------------+ | id | title | date | sequence | +----+-------+------------+-------------------------------+ | …

1
จัดเก็บชุดคู่คีย์ - ค่าอย่างมีประสิทธิภาพด้วยคีย์ที่แตกต่างกัน
ฉันรับแอปพลิเคชันที่เชื่อมโยงกิจกรรมหลายประเภทกับไซต์ มีประเภทกิจกรรมที่แตกต่างกันประมาณ 100 ประเภทและแต่ละประเภทมีชุดของฟิลด์ 3-10 ที่แตกต่างกัน อย่างไรก็ตามกิจกรรมทั้งหมดมีฟิลด์วันที่อย่างน้อยหนึ่งวัน (อาจเป็นการรวมกันของวันที่วันที่เริ่มต้นวันที่สิ้นสุดวันที่เริ่มต้นที่กำหนด ฯลฯ ) และเขตข้อมูลบุคคลที่รับผิดชอบหนึ่งรายการ ฟิลด์อื่นทั้งหมดนั้นแตกต่างกันอย่างมากและฟิลด์วันที่เริ่มต้นไม่จำเป็นต้องเรียกว่า "วันที่เริ่มต้น" การสร้างตารางย่อยหนึ่งตารางสำหรับแต่ละประเภทกิจกรรมจะส่งผลให้สคีมามี 100 ตารางย่อยที่แตกต่างกันซึ่งจะเกินกว่าที่จะจัดการได้อย่างไม่เหมาะสม ทางออกปัจจุบันของปัญหานี้คือการเก็บค่ากิจกรรมเป็นคู่ของคีย์ - ค่า นี่เป็นสคีมาที่ง่ายขึ้นอย่างมากของระบบปัจจุบันเพื่อให้ได้คะแนน แต่ละกิจกรรมมี ActivityField หลายรายการ แต่ละไซต์มีหลายกิจกรรมและตาราง SiteActivityData จะเก็บ KVP สำหรับแต่ละ SiteActivity สิ่งนี้ทำให้แอปพลิเคชัน (บนเว็บ) ง่ายต่อการเขียนโค้ดเพราะสิ่งที่คุณต้องทำคือวนรอบเรคคอร์ดใน SiteActivityData สำหรับกิจกรรมที่กำหนดและเพิ่มเลเบลและการควบคุมเลเบลและอินพุตสำหรับแต่ละแถวในฟอร์ม แต่มีปัญหามากมาย: ความซื่อสัตย์นั้นไม่ดี เป็นไปได้ที่จะวางเขตข้อมูลใน SiteActivityData ที่ไม่ได้อยู่ในประเภทกิจกรรมและ DataValue เป็นเขตข้อมูล varchar ดังนั้นตัวเลขและวันที่จะต้องถูกโยนอย่างต่อเนื่อง การรายงานและการสอบถามแบบเฉพาะกิจของข้อมูลนี้เป็นเรื่องยากเกิดข้อผิดพลาดได้ง่ายและช้า ตัวอย่างเช่นการรับรายการกิจกรรมทั้งหมดของบางประเภทที่มีวันที่สิ้นสุดภายในช่วงที่ระบุต้องใช้ pivots และการคัดเลือก varchars จนถึงวันที่ ผู้เขียนรายงานเกลียดชังสคีมานี้และฉันไม่ตำหนิพวกเขา …

1
การออกแบบโครงสร้างอย่างง่ายสำหรับการแยกแยะการพยากรณ์อุปสงค์
ฉันกำลังทำงานออกแบบฐานข้อมูลอย่างง่ายเป็นแบบฝึกหัดการฝึกอบรมซึ่งฉันต้องออกแบบโครงสร้างพื้นฐานสำหรับกรณีต่อไปนี้: ฉันมีลำดับชั้นของผลิตภัณฑ์หลัก (ตัวอย่างเช่นวัตถุดิบ> งานระหว่างทำ> ผลิตภัณฑ์สุดท้าย) คำสั่งซื้อจะถูกวางไว้ในแต่ละระดับ จำนวนการสั่งซื้อจะสามารถดูได้ในที่เก็บข้อมูลรายสัปดาห์ในอีก 6 เดือนข้างหน้า การคาดการณ์ความต้องการสามารถทำได้สำหรับแต่ละระดับผลิตภัณฑ์ การพยากรณ์อุปสงค์สำหรับสัปดาห์ใด ๆ ภายใน 6 เดือนข้างหน้าสามารถทำได้ในวันนี้ การพยากรณ์ความต้องการใช้สำหรับถังข้อมูลรายสัปดาห์ในอีก 6 เดือนข้างหน้า การพยากรณ์ความต้องการมักจะทำในระดับที่สูงขึ้นในลำดับชั้น (วัตถุดิบหรืองานในระดับความคืบหน้า) จะต้องมีการแยกออกเป็นระดับที่ต่ำกว่า (ผลิตภัณฑ์สุดท้าย) มี 2 ​​วิธีที่การพยากรณ์ความต้องการสามารถแยกจากระดับที่สูงขึ้นไปถึงระดับที่ต่ำกว่าได้: ผู้ใช้ระบุเปอร์เซ็นต์การกระจายสำหรับผลิตภัณฑ์สุดท้าย สมมติว่ามีการคาดการณ์ 1,000 รายการสำหรับความคืบหน้าในการทำงาน .. และผู้ใช้บอกว่าฉันต้องการ 40% สำหรับผลิตภัณฑ์ขั้นสุดท้าย 1 และ 60% สำหรับผลิตภัณฑ์ขั้นตอนที่ 2 ในที่เก็บข้อมูล 10 .. จากนั้นสำหรับสัปดาห์ที่ 10 (วันอาทิตย์ถึงวันเสาร์) นับจากนี้ สำหรับผลิตภัณฑ์สุดท้าย 1 จะเป็น 400 และสำหรับผลิตภัณฑ์สุดท้าย …

2
ประเภทข้อมูลที่จะเก็บข้อมูล XML ใน: VARCHAR (MAX) หรือ XML
ฉันกำลังกำหนด schema สำหรับชุดทรัพยากรใหม่โดยใช้ SQL Server 2008 ... ในกรณีนี้แต่ละระเบียน ( เช่นแถว ) จะต้องเก็บชิ้นส่วน XML เมื่อเวลาผ่านไป; แม้ว่าจะไม่บ่อย ฉันจะต้องสืบค้น XML เพื่อค้นหาองค์ประกอบและค่าแอตทริบิวต์ หากปล่อยทิ้งไว้กับสิ่งที่ฉันทำเองฉันมักจะใช้ประเภทข้อมูลxmlแม้ว่าฉันจะถูกชักนำให้เชื่อว่าสิ่งนี้มีปัญหา นั่นทำให้ฉันมีคำถาม รับสถานการณ์นี้สิ่งที่ปัจจัยที่ฉันควรจะมีการพิจารณาเมื่อพยายามที่จะตัดสินใจระหว่างการจัดเก็บ XML ในXMLคอลัมน์เทียบกับvarchar (MAX)คอลัมน์ ถ้ามันช่วย ... นี่คือรายละเอียดเพิ่มเติม: ไม่มีการตัดสินใจเกี่ยวกับการใช้สคีมาสำหรับชิ้นส่วนเหล่านี้ ( เช่น XSD's ) ขนาดของชิ้นส่วนจะมีตั้งแต่เล็กไปจนถึงใหญ่มาก XML ทั้งหมดจะมีรูปแบบที่ดี ในแต่ละวันจะมีการรวบรวมชิ้นส่วนได้มากถึง 10,000 ชิ้นพร้อมการสนับสนุนการสืบค้นออนไลน์ที่จำเป็นสำหรับ ~ 3 เดือน การค้นหากับ XML จะเกิดขึ้นตลอดทั้งวัน แต่ควรอยู่ในสถานะที่มีคำสั่งประเภทนี้พร้อมกันเล็กน้อย

4
วิธีควบคุมเวอร์ชันของ PostgreSQL schema ด้วยความคิดเห็น?
ฉันควบคุมเวอร์ชันส่วนใหญ่ของฉันทำงานกับGit : รหัสเอกสารการกำหนดค่าระบบ ฉันสามารถทำเช่นนั้นได้เพราะงานที่มีค่าทั้งหมดของฉันจะถูกเก็บไว้เป็นไฟล์ข้อความ ฉันยังได้เขียนและจัดการกับ SQL schema จำนวนมากสำหรับฐานข้อมูล Postgres ของเรา สคีมารวมถึงมุมมอง, ฟังก์ชั่น SQL และเราจะเขียนฟังก์ชั่น Postgres ในภาษาโปรแกรมR (ผ่านPL / R ) ฉันพยายามคัดลอกและวางโครงร่างของชิ้นที่ฉันและผู้ทำงานร่วมกันเขียน แต่ฉันลืมที่จะทำเช่นนั้น การคัดลอกและการกระทำที่ผ่านมาซ้ำซ้อนและเกิดข้อผิดพลาดได้ง่าย วิธีการ pg_dump / pg_restore จะไม่ทำงานเพราะมันสูญเสียความคิดเห็น โดยหลักการแล้วฉันต้องการมีวิธีแยกสคีมาปัจจุบันของฉันลงในไฟล์หรือไฟล์และเก็บความคิดเห็นไว้เพื่อให้ฉันสามารถควบคุมเวอร์ชันได้ แนวปฏิบัติที่เหมาะสมที่สุดสำหรับสกีมาการควบคุมเวอร์ชันพร้อมความคิดเห็นคืออะไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.