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

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

6
แบบสอบถามเพื่อเปรียบเทียบโครงสร้างของสองตารางใน MySQL
เพื่อให้กระบวนการสำรองข้อมูลของฐานข้อมูล MySQL ของฉันเป็นแบบอัตโนมัติฉันต้องการเปรียบเทียบโครงสร้างของสองตาราง (เวอร์ชันปัจจุบันเทียบกับเวอร์ชันเก่า) คุณนึกถึงการสืบค้นที่สามารถเปรียบเทียบสองตารางได้หรือไม่ นี่คือตัวอย่างตารางที่คุณสามารถเปรียบเทียบได้ CREATE TABLE product_today ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_yesterday ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_2days_back ( pname VARCHAR(15), price int, PRIMARY KEY (pname) ); สองตารางแรกมีโครงสร้างเหมือนกัน อันสุดท้ายแตกต่างกัน ฉันแค่ต้องรู้ว่าสองตารางมีโครงสร้างต่างกันหรือไม่ ฉันไม่สนใจว่ามันแตกต่างกันอย่างไร


6
Redgate SQL เปรียบเทียบกับโครงการฐานข้อมูลพรีเมียม / Ultimate ของ Visual Studio 2010
ฉันกำลังใช้Visual Studio Professional Editionซึ่งมีโครงการฐานข้อมูลเป็นแม่แบบโครงการ แต่บางส่วนของคุณลักษณะของมันจะไม่สามารถใช้ได้เช่นเครื่องมือ Schema เปรียบเทียบ การเปรียบเทียบสคีและฐานข้อมูลการปรับปรุงสคริปต์รุ่นนี้ใช้ได้เฉพาะในภาพรุ่น Studio 2010 พรีเมี่ยม / ดีที่สุด แต่การเปรียบเทียบสกีมาและการอัปเดตคุณลักษณะการสร้างสคริปต์ใน Visual Studio มีความสมบูรณ์เท่ากับในเครื่องมือ Redgate SQL Compareหรือไม่ (ฉันไม่ได้ใช้ด้วย) ฉันไม่ได้จัดการเพื่อค้นหารายการเปรียบเทียบคุณสมบัติ ใครบ้างที่ใช้ทั้งคู่ช่วยกันทำให้ชัดเจนขึ้นได้ไหม

2
Schema-less / ยืดหยุ่น + ฐานข้อมูล ACID?
ฉันกำลังมองหาการเขียนโปรแกรมประยุกต์ VB แบบอิงตามสถานที่ (ติดตั้งในเครื่อง) (ใบแจ้งหนี้ + สินค้าคงคลัง) เป็นแอปพลิเคชัน Clojure บนเว็บสำหรับลูกค้าองค์กรขนาดเล็ก ฉันตั้งใจจะนำเสนอนี้เป็นแอปพลิเคชัน SaaS สำหรับลูกค้าในการค้าที่คล้ายกัน ฉันกำลังดูตัวเลือกฐานข้อมูล: ตัวเลือกของฉันคือ RDBMS: Postgresql / MySQL ฉันอาจขยายผู้ใช้มากถึง 400 คนในปีแรกโดยทั่วไปแล้วมีจำนวนการดู 20-40 หน้า / ต่อวันต่อผู้ใช้ส่วนใหญ่สำหรับธุรกรรมที่ไม่ใช่มุมมองแบบคงที่ แต่ละมุมมองจะเกี่ยวข้องกับการดึงข้อมูลและอัปเดตข้อมูล การปฏิบัติตามข้อกำหนดของกรดเป็นสิ่งที่จำเป็น (หรือฉันคิดว่า) ดังนั้นปริมาณธุรกรรมไม่มาก คงจะไม่มีเกมง่ายๆที่จะเลือกสิ่งเหล่านี้ตามความต้องการของฉัน แต่สำหรับข้อกำหนดนี้ซึ่งฉันเชื่อว่าเป็นเรื่องปกติของแอป SaaS: โครงสร้างจะเปลี่ยนแปลงเมื่อฉันเพิ่มลูกค้า / ผู้ใช้และลูกค้าแต่ละราย การเปลี่ยนแปลงความต้องการทางธุรกิจ (ฉันจะเสนอความยืดหยุ่นที่ จำกัด บางอย่างเท่านั้นเริ่มต้นด้วย) เนื่องจากฉันไม่ใช่ผู้เชี่ยวชาญฐานข้อมูลตามสิ่งที่ฉันคิดและอ่านได้ฉันจึงสามารถจัดการได้หลายวิธี: มีการออกแบบสคีมา RDBMS แบบดั้งเดิมใน MySQl / Postgresql ด้วยฐานข้อมูลเดียวที่โฮสต์ผู้เช่าหลายคน และเพิ่มคอลัมน์ "ลอยฟรี" …

1
วิธีการโอนความเป็นเจ้าของ dbo schema ใน SQL Server 2012
ฉันได้ให้สิทธิ์การเป็นเจ้าของ schema db_owner แก่ผู้ใช้โดยไม่ได้ตั้งใจ (โดยใช้ช่องทำเครื่องหมายใน UI ด้านล่าง) และตอนนี้ฉันไม่สามารถ: โอนสิทธิ์การเป็นเจ้าของให้กับผู้ใช้รายอื่น ดร็อปผู้ใช้จาก DB (แม้ว่าฉันสามารถลบล็อกอินใน SQL Server) ฉันลองหลักการฐานข้อมูลเป็นเจ้าของสคีมาในฐานข้อมูลและไม่สามารถลบได้ ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo และในขณะที่เสร็จสมบูรณ์ผู้ใช้ยังคงเป็นเจ้าของและเป็นสีเทาดังนั้นฉันจึงไม่สามารถทำได้ใน UI เช่นกัน พบวิธีแก้ปัญหา: นอกเหนือจากคำตอบของ Arronฉันรู้ว่าฉันเรียกใช้คำสั่งข้างต้นในฐานข้อมูลผิด (facepalm!) เมื่อ DB ได้รับการแก้ไขทั้ง SQL ข้างต้นและคำตอบด้านล่างทำงาน

4
แสดงรายการคีย์หลักสำหรับตารางทั้งหมด - Postgresql
มีคำถามที่จะทำเช่นนั้น? ฉันพบข้อสงสัยบางอย่างที่สามารถทำได้สำหรับหนึ่งตาราง แต่ฉันไม่สามารถแก้ไขได้ดังนั้นฉันจึงเห็น: tablename | column | type

2
PostgreSQL: เครื่องมือ schema diff / patch [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน5 ปีที่ผ่านมา พิจารณาการตั้งค่าต่อไปนี้: ฐานข้อมูลการผลิต dev db ซึ่งมีการเปลี่ยนแปลงสกีมาเพื่อเปิดใช้งานคุณลักษณะใหม่ เมื่อการพัฒนาคุณลักษณะใหม่เสร็จสมบูรณ์ฉันต้องอัพเดต prod db schema ด้วยตนเองจนกว่าpg_dump --schema-onlyทั้งคู่จะเหมือนกัน กระบวนการนี้เกิดข้อผิดพลาดได้ง่ายและน่าเบื่อ ดังนั้นฉันกำลังมองหาเครื่องมือที่สามารถ: แสดงสรุปความแตกต่างระหว่างสอง schema (เช่นdiff) โปรดทราบว่าฉันไม่ได้มองหาส่วนต่างของต้นฉบับเพียงอย่างเดียว แต่เป็นเครื่องมือที่ซับซ้อนยิ่งขึ้นซึ่งสามารถสรุปได้เช่น "ตารางXมีคอลัมน์ใหม่Y" สร้างรหัส SQL ที่จะแปลงหนึ่งสกีมาเป็นอีกแบบอัตโนมัติ (เช่นpatch) มี schema diff / patch tool ที่สามารถช่วยฉันแปลง prod schemas เป็น schemas dev ขั้นสูงหรือไม่

5
ตารางคำสั่งอีคอมเมิร์ซ ประหยัดราคาหรือใช้ตารางการตรวจสอบ / ประวัติ?
ฉันออกแบบคีมาอีคอมเมิร์ซแรกของฉัน ฉันได้อ่านเรื่องนี้มาระยะหนึ่งแล้วและสับสนเล็กน้อยเกี่ยวกับความสัมพันธ์ระหว่างorder_line_itemกับproduct productสามารถรับการสั่งซื้อ มันมีรายละเอียดที่แตกต่างกัน unit_priceแต่ที่สำคัญที่สุดคือ order_line_itemมีคีย์ต่างประเทศไปproduct_idซื้อที่quantityซื้อและunit_priceที่จุดในเวลาลูกค้าที่ซื้อสินค้า สิ่งที่ฉันได้อ่านส่วนใหญ่บอกว่าควรเพิ่มunit_priceon order_line_item(อย่างชัดเจนโดยไม่อ้างอิงผ่านproduct_id) สมเหตุสมผลเนื่องจากร้านค้าสามารถเปลี่ยนแปลงราคาในอนาคตซึ่งจะทำให้การรายงานคำสั่งซื้อการติดตามความสมบูรณ์และอื่น ๆ สิ่งที่ฉันไม่เข้าใจคือทำไมบันทึกโดยตรงunit_priceไปยังค่าorder_line_itemหรือไม่ การสร้างตารางการตรวจสอบ / ประวัติจะเป็นการดีกว่าการสร้างตารางการunit_priceเปลี่ยนแปลงproductหรือไม่? เมื่อมีการorder_line_itemสร้างคีย์ต่างประเทศของproduct_auditตารางจะถูกเพิ่มและสามารถดึงราคา (โดยอ้างอิง) จากที่นั่น ดูเหมือนว่าฉันจะมีข้อดีหลายอย่างในการใช้วิธีนี้ (การทำซ้ำของข้อมูลน้อยลง, ประวัติการเปลี่ยนแปลงราคาเป็นต้น) ดังนั้นทำไมจึงไม่ใช้บ่อยกว่านี้ ฉันยังไม่เจอตัวอย่างของสคีมาอีคอมเมิร์ซที่ใช้วิธีการนี้ฉันทำอะไรหายหรือเปล่า UDPATE: ดูเหมือนว่าคำถามของฉันที่เกี่ยวข้องกับการเปลี่ยนแปลงอย่างช้าๆมิติ ฉันยังคงสับสนอยู่ว่าในขณะที่การเปลี่ยนมิติช้าเกี่ยวข้องกับคลังข้อมูลและ OLAP ดังนั้นชนิดการเปลี่ยนแปลงมิติช้าสามารถนำไปใช้กับฐานข้อมูลธุรกรรมทางธุรกิจหลักของฉัน (OLTP) ได้หรือไม่ ฉันสงสัยว่าฉันกำลังรวมแนวคิดจำนวนมากเข้าด้วยกันหรือไม่

3
มีโซลูชันการจัดการข้อมูลเมตาโอเพนซอร์สหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน6 ปีที่ผ่านมา มีโซลูชันการจัดการข้อมูลเมตาโอเพนซอร์สหรือไม่ ฉันต้องการสร้างที่เก็บข้อมูลเมตาที่จะเก็บรายละเอียดของเมตาดาต้าของสกีมาฐานข้อมูลตารางและรายการข้อมูลของฐานข้อมูลองค์กรนับร้อย ฉันสนใจเป็นพิเศษในบางสิ่งที่สามารถสืบค้นข้อมูล schema ของฐานข้อมูลโดยอัตโนมัติเพื่อให้สามารถติดตามการเปลี่ยนแปลงในข้อมูลเมตาที่เกี่ยวข้องกับตาราง เช่นการเปลี่ยนแปลงขนาดข้อมูลคอลัมน์ตารางและคอลัมน์ที่เพิ่มเป็นต้น
13 schema  metadata 

1
PostgreSQL บ่นเกี่ยวกับหน่วยความจำที่แชร์ แต่ดูเหมือนว่าหน่วยความจำที่แชร์จะไม่เป็นไร
ฉันได้ทำคีมาแบบเข้มข้นแล้วปล่อยและสร้างบนเซิร์ฟเวอร์ PostgreSQL แต่ตอนนี้บ่น .. : WARNING: out of shared memory ERROR: out of shared memory HINT: You might need to increase max_locks_per_transaction. แต่ปัญหายังคงอยู่หาก PostgreSQL เพิ่งเริ่มต้นใหม่service postgresql restartฉันสงสัยว่า max_locks_per_transaction จะไม่ปรับอะไรเลย ฉันค่อนข้างจะเหินห่างเพราะรายการแก้ไขปัญหาสำหรับข้อผิดพลาดนี้ไม่ทำงานสำหรับฉัน ข้อมูลเพิ่มเติม 1409291350:รายละเอียดบางอย่างหายไป แต่ฉันเก็บผลลัพธ์ SQL หลักไว้ postgres=# SELECT version(); PostgreSQL 9.3.5 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit และ: …

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

5
PostgreSQL: วันที่สร้างตาราง
ฉันเพิ่งเสร็จสิ้นโครงการในระหว่างที่สร้างตารางฐานข้อมูลจำนวนมาก ตารางเหล่านี้ส่วนใหญ่มีขยะชั่วคราวและฉันกำลังมองหาวิธีง่ายๆในการแสดงรายการตารางเหล่านี้ทั้งหมด มีวิธีรายการตาราง DB ทั้งหมดเรียงตามวันที่สร้างของพวกเขา

2
ทำไมฉันไม่เห็นตารางของฉัน (PostgreSQL) เมื่อฉันใช้ \ dt (+) ภายใน psql
ฉันได้สร้างตารางdonorในสคีมาreferenceตาม: CREATE TABLE reference.donor ( donor_code smallint PRIMARY KEY, donor_name character varying NOT NULL, donor_type smallint REFERENCES reference.donor_type (type_id), alpha_2_code char(2) REFERENCES reference.iso_3166_1 (alpha_2_code) ); ฉันเติมตารางตาม: INSERT INTO reference.donor (donor_code, donor_name, donor_type, alpha_2_code) SELECT donor_code, donor_name, donor_type, alpha_2_code FROM reference.donor_template; เมื่อฉันวิ่ง: \dt+ reference.* ภายใน psql ฉันเห็นreference.donorตาราง: List of relations Schema …

2
การเปรียบเทียบ Schema SSDT ล้มเหลวเมื่อเปรียบเทียบโครงการฐานข้อมูลของฉันกับเซิร์ฟเวอร์ Azure ของฉัน
ฉันมีโครงการฐานข้อมูล SQL ที่ฉันสร้างฐานข้อมูลองค์กรของเรา มีการปรับใช้หลายครั้งบนภายในและ AWS โฮสต์เซิร์ฟเวอร์ SQL โดยใช้เครื่องมือ Schema เปรียบเทียบของ SSDT ปัญหาเมื่อฉันโพสต์ไปยังเซิร์ฟเวอร์ Win 2012 โฮสต์ Azure ที่เรียกใช้ SQL Ent 2012 sp2 มันกลับมาพร้อมกับ "การเปรียบเทียบเสร็จสมบูรณ์ไม่พบความแตกต่าง" ฉันรู้ว่ามันผิดเพราะฉันสามารถเปิด Enterprise Manager และเปรียบเทียบ schema กับโครงการ SQL และดูว่ามีความแตกต่าง ฉันพบบทความหลายบทความที่พูดถึงการเปิดตัวในปี 2014 ทำให้เครื่องมือแตกหัก แต่มีความแตกต่างของรุ่น [ใช่ฉันทำสิ่งนี้กับ Google การกล่าวเนื่องจากฉันมีชื่อเสียงในการลืมทำเช่นนั้น ] https://www.google.com/webhp?ie=utf-8&oe=utf-8#q=ssdt+data+compare+fail+to+detect+difference&start=10 สิ่งอื่น ๆ ที่ฉันได้ตรวจสอบรวมถึงทำให้แน่ใจว่าบัญชี DB ของฉันมีการเข้าถึงไม่ จำกัด ฉันสามารถเชื่อมต่อกับคอนโซลการจัดการ ฉันสามารถเชื่อมต่อกับโปรแกรมท้องถิ่น การยืนยันครั้งล่าสุดว่ามีปัญหา: ฉันสร้าง …

2
อนุญาตให้ผู้ใช้ทำอะไรก็ได้ภายในสคีมาของเขาเอง แต่ไม่ต้องสร้างหรือวางสคีมาเอง
ฉันสร้างสคีมาใน SQL Azure และได้รับอนุญาตจากบทบาทฐานข้อมูลต่อไปนี้: CREATE ROLE myrole AUTHORIZATION dbo; EXEC sp_addrolemember 'myrole', 'myuser'; CREATE SCHEMA myschema AUTHORIZATION dbo; GRANT ALTER, CONTROL, DELETE, EXECUTE, INSERT, REFERENCES, SELECT, UPDATE, VIEW DEFINITION ON SCHEMA::myschema TO myrole; GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO myrole; ผ่านการอนุญาตที่กำหนดไว้ข้างต้นmyuserสามารถสร้าง / วางสคีมาของเขาเองเพื่อที่จะเอาชนะปัญหาที่ฉันลองใช้สิทธิ์ ALTER ANY SCHEMA …

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