2012-11-28 15 views
5

मुझे स्कूल के लिए एक छोटी परियोजना करना है। डेटाबेस तालिका में सप्ताह के दिनों को स्टोर करने की सबसे अच्छी संभावना क्या है?डेटाबेस में सप्ताह के स्टोर दिन

उदा। डेटा बैकअप के लिए सप्ताह के दिनों में - मैं इस तरह एक कॉलम का उपयोग करना चाहिए:

backupDays varchar(50) 
1,5       >> monday + friday 
2,3,4     >>tuesday + wednesday + thursday 

मैं अपने asp.net MVC के कार्यक्रम में इस तालिका का उपयोग करने के लिए है और मैं एक MSSQL डेटाबेस का उपयोग करें।

+5

आप खुद ही कुछ बात करने की कोशिश की है – NoNaMe

+0

आप एक क्षेत्र में एक से अधिक दिन के सप्ताह स्टोर करने के लिए की जरूरत है? –

+0

हाँ मुझे मैदान में सप्ताह के 7 दिनों तक स्टोर करने की आवश्यकता है। त्वरित प्रतिक्रिया – m4Nu

उत्तर

0

मेरी राय में, एक एक दिन में सप्ताह में स्टोर करने का सबसे अच्छा तरीका है, इसे एक संख्या (0..6) के रूप में स्टोर करना है। लेकिन ऐसा लगता है कि आप एक क्षेत्र में एक से अधिक दिन स्टोर करना चाहते हैं। जाहिर है, आप एक ही क्षेत्र में एक से अधिक मान स्टोर नहीं कर सकते हैं। आप एक अलग तालिका उपयोग करने की आवश्यकता:

create table Course 
(
    CourseId int not null primary key, 
    Name nvarchar(100) not null 
); 

create table CourseDayOfWeek 
(
    CourseDayOfWeek int not null primary key, 
    CourseId int not null references Course (CourseId), 
    Day int not null 
); 

यदि आपको वास्तव में एक भी क्षेत्र में एक से अधिक मान स्टोर करने के लिए (आप एक नया टेबल बनाने का जोखिम नहीं उठा सकते हैं) की जरूरत है, तो आप एक xml क्षेत्र या एक स्ट्रिंग क्षेत्र का उपयोग कर सकते । फिर आपको मैन्युअल रूप से फ़ील्ड को पार्स करने की आवश्यकता है।

6

इस मामले में (एक क्षेत्र में 7 बूलियन मूल्य) हमें केवल 7 बिट लंबे बाइनरी सेट मिलते हैं। तो आप एमएस एसक्यूएल - tinyint में एक बाइट लंबाई फ़ील्ड प्रकार का उपयोग कर सकते हैं। और इसे कुशल बनाने के लिए bitwise operators का उपयोग करें।

उदाहरण के लिए (बाइनरी):

00000001 -Sunday

00000011 - सोमवार और रविवार

00000101 - मंगलवार और रविवार

00000111 - सोमवार, मंगलवार और रविवार

यहां आप विवरण और उदाहरण पा सकते हैं:

http://sqlfool.com/2009/02/bitwise-operations/

http://www.mssqltips.com/...

+0

बिटमैस्क वे कुंजी हैं :) – YvesR

+1

एक महान बिटमैस्क उपयोग उदाहरण: http://stu.mp/2004/06/a-quick-bitmask-howto-for-programmers.html – nikoskip

संबंधित मुद्दे