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

ระบุประเภทของข้อมูลที่ถูกเก็บไว้ (สตริงวันที่ตัวเลข ฯลฯ )

3
ข้อดีและข้อเสียในการใช้ประเภท Enum กับจำนวนเต็ม?
ช่วยให้พูดในตารางสุ่มบางท่านมีชื่อคอลัมน์สถานะ มันเป็นค่าที่แท้จริงของโลกจะได้รับการอย่างใดอย่างหนึ่งที่เปิดใช้งานหรือปิดการใช้งาน มันจะดีกว่าสำหรับชนิดข้อมูลของคอลัมน์นี้จะเป็น int / บูล (1 หรือศูนย์) หรือจะใช้ENUMกับค่าที่เป็นenabledและdisabled? ข้อดีหรือข้อเสียคืออะไร? สมมุติว่าแทนที่จะเป็นเพียงสองสถานะที่ถูกต้องคุณมี 4 หรือ 10 หรือมากกว่านั้น ข้อดีและข้อเสียจะแกว่งไปด้านใดด้านหนึ่งหรือไม่เมื่อจำนวนค่าที่ต้องการเพิ่มขึ้น?

3
ข้อเสียของการใช้ UUID หรือ GUID เป็นคีย์หลักคืออะไร
ฉันต้องการสร้างระบบแบบกระจาย ฉันต้องการจัดเก็บข้อมูลในฐานข้อมูลและจะเป็นประโยชน์ในการใช้UUIDหรือGUIDเป็นคีย์หลักในบางตาราง ฉันคิดว่ามันเป็นข้อเสียของการออกแบบนี้เนื่องจาก UUID / GUID ค่อนข้างใหญ่และพวกมันเกือบจะสุ่ม ทางเลือกคือการใช้ INT เพิ่มขึ้นอัตโนมัติหรือยาว ข้อเสียของการใช้ UUID หรือ GUID เป็นคีย์หลักสำหรับตารางของฉันคืออะไร ฉันอาจจะใช้ Derby / JavaDB (บนไคลเอนต์) และ PostgreSQL (บนเซิร์ฟเวอร์) เป็น DBMS

7
วิธีรวมวันที่และเวลาเข้ากับ datetime2 ใน SQL Server
รับส่วนประกอบดังนี้ DECLARE @D DATE = '2013-10-13' DECLARE @T TIME(7) = '23:59:59.9999999' วิธีที่ดีที่สุดในการรวมพวกเขาเพื่อสร้างDATETIME2(7)ผลลัพธ์ที่มีค่า'2013-10-13 23:59:59.9999999'คืออะไร? บางสิ่งที่ไม่ทำงานแสดงอยู่ด้านล่าง SELECT @D + @T วันที่ตัวดำเนินการชนิดข้อมูลไม่ถูกต้องสำหรับตัวดำเนินการเพิ่ม SELECT CAST(@D AS DATETIME2(7)) + @T ตัวถูกดำเนินการชนิดข้อมูล datetime2 ไม่ถูกต้องสำหรับตัวดำเนินการเพิ่ม SELECT DATEADD(NANOSECOND,DATEDIFF(NANOSECOND,CAST('00:00:00.0000000' AS TIME),@T),@D) ฟังก์ชั่น Dateiff ส่งผลให้เกิดการล้น จำนวนของส่วนของวันที่ที่แยกอินสแตนซ์วันที่ / เวลาสองรายการมีขนาดใหญ่เกินไป ลองใช้ Dateiff ด้วยส่วนที่แม่นยำน้อยกว่า * ล้นสามารถหลีกเลี่ยงได้ในฐานข้อมูล SQL Azure และ SQL Server 2016 DATEDIFF_BIGโดยใช้ …

6
ความหมายของประสิทธิภาพของขนาด MySQL VARCHAR
มีความแตกต่างของประสิทธิภาพใน MySQL ระหว่างขนาด varchar หรือไม่ ยกตัวอย่างเช่นและvarchar(25) varchar(64000)ถ้าไม่มีมีเหตุผลที่จะไม่ประกาศ varchars ทั้งหมดที่มีขนาดสูงสุดเพียงเพื่อให้แน่ใจว่าคุณไม่ได้ออกจากห้อง?

7
ฉันควรเก็บที่อยู่อีเมลไว้ในฐานข้อมูลประเภทใด
ฉันเข้าใจว่าที่อยู่อีเมล 254 ตัวอักษรนั้นถูกต้อง แต่การใช้งานที่ฉันได้วิจัยมักจะใช้ varchar (60) ถึง varchar (80) หรือเทียบเท่า ตัวอย่างเช่น: คำแนะนำ SQL Serverนี้ใช้ varchar (80) หรือตัวอย่างของ Oracle มีเหตุผลที่จะไม่ใช้จำนวนอักขระสูงสุด 254 ตัวหรือไม่ varchar ตามคำจำกัดความไม่ใช้ที่เก็บข้อมูลเท่าที่จำเป็นเพื่อเก็บข้อมูลหรือไม่ มีนัยยะเกี่ยวกับประสิทธิภาพ / การแลกเปลี่ยนที่สำคัญซึ่งทำให้การใช้งานจำนวนมากใช้น้อยกว่า 254 อักขระที่เป็นไปได้ทั้งหมดหรือไม่

4
วิธีที่ดีที่สุดในการจัดเก็บที่อยู่อีเมลใน PostgreSQL คืออะไร
ประเภทข้อมูลที่เหมาะสมในการจัดเก็บที่อยู่อีเมลใน PostgreSQL คืออะไร ฉันสามารถใช้varchar(หรือแม้กระทั่งtext) แต่ฉันสงสัยว่ามีประเภทข้อมูลเฉพาะสำหรับอีเมล

3
ชนิดข้อมูลที่เหมาะสมที่สุดสำหรับเขตข้อมูล MD5 คืออะไร
เรากำลังออกแบบระบบที่รู้กันว่าอ่านยาก (ตามคำสั่งของการอ่านหมื่นครั้งต่อนาที) มีตารางnamesที่ทำหน้าที่จัดเรียงรีจิสทรีกลาง แต่ละแถวมีtextเขตข้อมูลrepresentationและไม่ซ้ำกันkeyซึ่งเป็นแฮช MD5 ของสิ่งrepresentationนั้น 1ตารางนี้มีระเบียนหลายสิบล้านระเบียนและคาดว่าจะเติบโตเป็นพันล้านตลอดอายุการใช้งานแอปพลิเคชัน มีตารางอื่น ๆ อีกหลายสิบตาราง (ของสคีมาที่แตกต่างกันอย่างมากและจำนวนเรคคอร์ด) ที่อ้างอิงถึงnamesตาราง ระเบียนใดก็ตามที่ระบุในตารางใดตารางหนึ่งเหล่านี้รับประกันว่าจะมี a name_keyซึ่งเป็น foreign key ไปยังnamesตาราง 1: อนึ่งตามที่คุณคาดไว้ระเบียนในตารางนี้จะไม่เปลี่ยนรูปเมื่อมีการเขียน สำหรับตารางใดก็ตามที่ไม่ใช่namesตารางแบบสอบถามที่พบบ่อยที่สุดจะเป็นไปตามรูปแบบนี้: SELECT list, of, fields FROM table WHERE name_key IN (md5a, md5b, md5c...); ฉันต้องการปรับให้เหมาะสมสำหรับการอ่าน ฉันสงสัยว่าจุดแรกของฉันควรจะลดขนาดของดัชนี (แม้ว่าฉันจะไม่ได้รับการพิสูจน์ว่าผิด) คำถาม: อะไรคือ / ชนิดข้อมูลที่ดีที่สุดสำหรับkeyและname_keyคอลัมน์คืออะไร? มีเหตุผลที่จะใช้hex(32)มากกว่าbit(128)? BTREEหรือGIN?

4
ฉันควรเพิ่มขีดจำกัดความยาวตามอำเภอใจในคอลัมน์ VARCHAR หรือไม่
ตามเอกสารของ PostgreSQLไม่มีความแตกต่างระหว่างประสิทธิภาพVARCHAR, และVARCHAR(n)TEXT ฉันควรเพิ่มขีดจำกัดความยาวตามอำเภอใจในคอลัมน์ชื่อหรือที่อยู่หรือไม่? แก้ไข:ไม่ใช่รายการที่: การค้นหาดัชนีจะเร็วขึ้นอย่างเห็นได้ชัดด้วย char vs varchar หรือไม่เมื่อค่าทั้งหมดเป็น 36 ตัวอักษร ฉันรู้ว่าCHARประเภทนี้เป็นของที่ระลึกในอดีตและฉันไม่เพียง แต่สนใจในการแสดงเท่านั้น

3
ตารางที่มีค่าพารามิเตอร์เป็นพารามิเตอร์ผลลัพธ์สำหรับกระบวนงานที่เก็บไว้
มันเป็นไปได้ที่จะใช้พารามิเตอร์ที่มีมูลค่าเป็นตารางสำหรับพารามิเตอร์ขาออกสำหรับกระบวนงานที่เก็บไว้หรือไม่ นี่คือสิ่งที่ฉันต้องการทำในรหัส /*First I create MY type */ CREATE TYPE typ_test AS TABLE ( id int not null ,name varchar(50) not null ,value varchar(50) not null PRIMARY KEY (id) ) GO --Now I want to create stored procedu whic is going to send output type I created, --But it looks …


6
วิธีการแปลงจำนวนเต็มเป็นบูลีนในประโยค MySQL SELECT?
ฉันใหม่ที่นี่ดังนั้นโปรดฉัน ฉันมีสถานการณ์ต่อไปนี้: ฉันมีหลายตารางซึ่งเพื่อความเรียบง่ายจะถูกแสดงในมุมมองในฐานข้อมูล MySQL ของฉัน ปัญหาของฉันคือฉันต้องการค่าในมุมมองนี้แสดงว่าเป็นเหตุการณ์ประเภทหนึ่งหรืออื่น (บูลีนที่เรียบง่าย) ซึ่งฉันพยายามที่จะบรรลุด้วย: `gu`.`StoppingUnitEventME` = `ese`.`MonitoringElement` AS `IsStopingEvent` ผลลัพธ์ถูกแสดงเป็น int และดังนั้นถูกอ่านโดย Entity Framework ปัญหาคือฉันต้องการค่าบูลีนคืนซึ่งฉันพยายามทำด้วย: CAST((`gu`.`StoppingUnitEventME` = `ese`.`MonitoringElement`) as boolean) AS `IsStopingEvent` สิ่งนี้ส่งผลให้เกิดข้อผิดพลาดข้อหนึ่งที่ไม่ปรากฏให้ฉันเห็นใน MySQL Workbench (ฉันได้รับเฉพาะที่น่ารำคาญ "คุณมีข้อผิดพลาดใน ... ") พวกคุณช่วยฉันออกมาได้ไหม พยายามที่จะแก้ปัญหาในแอปพลิเคชันของฉัน แต่ฉันจริง ๆ preffer นี้แก้ไขได้ในฐานข้อมูลเพราะมันจะถูกใช้โดยซอฟต์แวร์อื่น ๆ ในภายหลัง

7
คอลัมน์ยาวส่งผลกระทบต่อประสิทธิภาพและการใช้งานดิสก์อย่างไร
ในโครงการปัจจุบันของเรามันเกิดขึ้นบ่อยเกินไปที่เราต้องขยายคอลัมน์ด้วยตัวละครสองสามตัว จากvarchar(20)ไปvarchar(30)เรื่อย ๆ ในความเป็นจริงมันมีความสำคัญมากแค่ไหน? สิ่งนี้ดีเพียงใด ผลกระทบของการอนุญาตเพียงแค่ 100 หรือ 200 หรือแม้กระทั่ง 500 ตัวอักษรสำหรับช่อง "อินพุต" ปกติคืออะไร อีเมลสามารถมีได้เพียง 320 ตัวอักษรดังนั้นตกลง - มีข้อ จำกัด ที่ดี แต่สิ่งที่ฉันจะได้รับถ้าฉันตั้งไว้ที่ 200 เพราะฉันไม่ได้คาดหวังที่อยู่อีเมลนานกว่านั้น โดยปกติตารางของเราจะไม่มีแถวมากกว่า 100,000 แถวและมีคอลัมน์มากถึง 20 หรือ 30 คอลัมน์ เราใช้ SQL Server 2008 ตอนนี้ แต่มันน่าสนใจที่จะทราบว่า DBs ต่างกันจัดการกับปัญหานี้อย่างไร ในกรณีที่ผลกระทบต่ำมาก - อย่างที่ฉันคาดไว้มันจะช่วยให้ได้ข้อโต้แย้งที่ดี (สำรองข้อมูลด้วยการเชื่อมโยง?) เพื่อโน้มน้าวใจ DBA ของฉันว่าความหวาดระแวงระยะยาวนี้ไม่จำเป็นจริงๆ ในกรณีที่เป็นฉันอยู่ที่นี่เพื่อเรียนรู้ :-)

7
กำลังจัดเก็บที่อยู่ IP
ฉันต้องเก็บที่อยู่ IP ของผู้ใช้ที่ลงทะเบียนทั้งหมดในฐานข้อมูล ฉันสงสัยว่าฉันควรประกาศตัวละครในคอลัมน์นี้กี่ตัว? ฉันควรสนับสนุน IPv6 ด้วยหรือไม่ ถ้าเป็นเช่นนั้นความยาวสูงสุดของที่อยู่ IP คืออะไร?

2
ใช้ข้อความสูงสุด MAX หรือเฉพาะเจาะจงน้อยกว่านั้น
มีคนถูกตรวจสอบรหัส DDL ของการสร้างตารางและแนะนำเมื่อพวกเขาเห็นผมเห็นโดยใช้VARCHAR(256)ฟิลด์สำหรับข้อความที่ผมคาดหวังว่าจะสวยขนาดเล็กเหมือนชื่อหรือสิ่งที่ฉันควรจะเสมอเพียงแค่ใช้VARCHAR(MAX)และเชื่อมโยงทำไมต้องใช้อะไร แต่ (สูงสุด varchar ) . ฉันอ่านมัน แต่ดูเหมือนว่ามันล้าสมัยเพราะมันมุ่งเน้นไปที่ปี 2005 และดูเหมือนจะไม่ได้เสนอเหตุผลที่แท้จริงในการจัดสรรที่อาจเกิดขึ้นถึง 2 GB ต่อแถวในเขตข้อมูลข้อความทั้งหมด จากมุมมองด้านประสิทธิภาพการจัดเก็บและอื่น ๆ เราควรตัดสินใจอย่างไรว่าจะใช้งานVARCHAR(MAX)หรือใช้SQL Server รุ่นใหม่ที่มีขนาดเฉพาะเจาะจงน้อยลง (เช่น 2008, 2012, 2014)

5
แบบสอบถามเพื่อส่งกลับชื่อคอลัมน์ผลลัพธ์และชนิดข้อมูลของแบบสอบถามตารางหรือมุมมอง
มีแบบสอบถามหรือคำสั่ง PostgreSQL ที่ส่งคืนชื่อเขตข้อมูลและชนิดเขตข้อมูลของแบบสอบถามตารางหรือมุมมองหรือไม่ เช่นวิธีแก้ปัญหาหากนำไปใช้กับแบบสอบถาม SELECT อย่างง่ายเช่นSELECT * from personควรส่งคืนรายการเช่น: Column Name | Column Type =========================== First Name | character Last Name | character Age | integer Date of Birth | date ฉันค้นหาinformation_schemaมุมมองที่อธิบายไว้ในคำตอบด้านล่างและดูเหมือนว่าจะครอบคลุมตารางค่อนข้างดีและฉันคิดว่ามันครอบคลุมมุมมองเช่นกัน แต่ฉันยังไม่ได้ตรวจสอบ สุดท้ายเป็นข้อ ๆ แต่ที่ถูกต้องเช่นแบบสอบถาม SELECT เกี่ยวข้องกับJOINS, UNIONSฯลฯ ในฐานข้อมูล มีขั้นตอนในตัวหรือโพรซีเดอร์หรือสคริปต์อื่นที่เก็บไว้ซึ่งสามารถส่งคืนค่าเดียวกันสำหรับ QUERY ที่ถูกต้องได้หรือไม่? ฉันกำลังพัฒนาโปรแกรมที่สร้างข้อมูลและแบบฟอร์มการสืบค้นและต้องการข้อมูลสำหรับการตรวจสอบความถูกต้องของข้อมูลและการใช้งานฟังก์ชันในข้อมูลที่ส่งคืน

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