แนวปฏิบัติที่ดีที่สุดสำหรับการสร้างเขตข้อมูลyes/no
คืออะไรBoolean
เมื่อแปลงจากaccess database
หรือโดยทั่วไป
แนวปฏิบัติที่ดีที่สุดสำหรับการสร้างเขตข้อมูลyes/no
คืออะไรBoolean
เมื่อแปลงจากaccess database
หรือโดยทั่วไป
คำตอบ:
เทียบเท่าเป็นBIT
สนาม
ในSQL
คุณใช้0
และ1
ตั้งค่าฟิลด์บิต (เช่นเดียวกับฟิลด์ใช่ / ไม่ใช่ใน Access) ใน Management Studio จะแสดงเป็นค่าเท็จ / จริง (อย่างน้อยในเวอร์ชันล่าสุด)
เมื่อเข้าถึงฐานข้อมูลผ่าน ASP.NET ระบบจะแสดงฟิลด์เป็นค่าบูลีน
BIT
ประเภทข้อมูลโดยทั่วไปจะใช้ในการจัดเก็บboolean
ค่า ( 0
สำหรับfalse
, 1
สำหรับtrue
)
BIT
ระบุไว้ใน SQL มาตรฐานหรือไม่ ฉันพบว่ามันยาก ที่ใกล้ที่สุดที่ฉันเห็นคือ "ประเภทบูลีน"
คุณสามารถใช้bit
ประเภทคอลัมน์
คุณสามารถใช้BIT
สนาม
สำหรับการเพิ่มคอลัมน์ BIT ในตารางที่มีอยู่คำสั่ง SQL จะมีลักษณะดังนี้:
ALTER TABLE table_name ADD yes_no BIT
CREATE TABLE table_name (yes_no BIT)
หากคุณต้องการที่จะสร้างตารางใหม่ที่คุณสามารถทำ:
คุณสามารถใช้ชนิดข้อมูล bit
แทรกค่าที่มากกว่า 0 จะถูกเก็บเป็น '1'
ใส่ค่าที่น้อยกว่า 0 จะถูกเก็บเป็น '1'
ค่าที่แทรกเป็น '0' จะถูกเก็บไว้เป็น '0'
สิ่งนี้ถือเป็นจริงสำหรับ MS SQL Server 2012 Express
0
เป็นเท็จไม่ใช่0
ตัวเลขใด ๆเป็นจริง มันก็เป็นเรื่องธรรมดาสำหรับ -1 ที่จะเป็นค่าเริ่มต้นสำหรับจริงเพราะในไบนารีที่ลงนามแล้วมันมีทุกชุดบิตเป็น 1 ทุกวันนี้มันเป็นเรื่องธรรมดามากที่จะเห็น 1 เป็นค่าเริ่มต้นสำหรับจริง (เฉพาะชุดบิตที่สำคัญน้อยที่สุด)
มีคำตอบที่บอกว่าใช้ Bit อยู่แล้ว ฉันจะเพิ่มคำตอบเหล่านี้ให้มากขึ้น
คุณควรใช้บิตเพื่อแทนค่าบูลีน
ข้อสังเกตจากบทความ MSDN
บิตสามารถรับค่า 1, 0 หรือ NULL
โปรแกรมฐานข้อมูลเซิร์ฟเวอร์ SQL จะปรับการจัดเก็บคอลัมน์บิตให้เหมาะสม หากมี 8 บิตหรือน้อยกว่าคอลัมน์ในตารางคอลัมน์จะถูกจัดเก็บเป็น 1 ไบต์ หากมีตั้งแต่ 9 ถึง 16 บิตคอลัมน์จะถูกเก็บไว้เป็น 2 ไบต์และอื่น ๆ
ค่าสตริง TRUE และ FALSE สามารถแปลงเป็นค่าบิต: TRUE ถูกแปลงเป็น 1 และ FALSE ถูกแปลงเป็น 0
การแปลงเป็นบิตจะส่งเสริมค่าที่ไม่ใช่ศูนย์ใด ๆ ให้เป็น 1
NOT NULL
Bit มีค่า 1, 0 และ NULL ดูตารางความจริงสำหรับสิ่งนี้ ดังนั้นวางแผนค่าให้เหมาะสม มันอาจเพิ่มความสับสนโดยอนุญาตให้ค่า NULL สำหรับชนิดข้อมูลบิต
ตัวอย่างการใช้งานขณะสร้างตาราง:
[ColumnName] BIT NULL DEFAULT 0
คุณสามารถใช้BIT
สนาม
วิธีสร้างตารางใหม่:
CREATE TABLE Tb_Table1
(
ID INT,
BitColumn BIT DEFAULT 1
)
การเพิ่มคอลัมน์ในตารางที่มีอยู่:
ALTER TABLE Tb_Table1 ADD BitColumn BIT DEFAULT 1
ในการแทรกบันทึก:
INSERT Tb_Table1 VALUES(11,0)
bit
จะง่ายที่สุดและยังใช้พื้นที่น้อยที่สุด ไม่ verbose มากเมื่อเทียบกับ "Y / N" แต่ฉันไม่เป็นไร
bit
เป็นตัวเลือกที่เหมาะสมที่สุด ไม่เช่นนั้นฉันเคยใช้int
เพื่อจุดประสงค์นั้น 1
สำหรับtrue
และสำหรับ0
false
ใน SQL Server Management Studio ทุกรุ่นให้ใช้
BIT
เป็น Data Type
ซึ่งจะให้ตัวเลือกTrue
หรือFalse
ค่าแก่คุณ ในกรณีที่คุณต้องการใช้อย่างเดียว1
หรือ0
จากนั้นคุณสามารถใช้วิธีนี้:
CREATE TABLE SampleBit(
bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)
แต่ผมจะให้คำแนะนำอย่างเคร่งครัดBIT
ในฐานะที่ดีที่สุดตัวเลือก หวังอย่างเต็มที่มันช่วยคน