በመሠረተ-ዳታ ዲዛይን የተሠሩ ስህተቶች

በመቶዎች የሚቆጠሩ መዝገቦችን ወይም በሚሊዮኖች የሚቆጠሩ መዝገቦችን በሚይዝ የውሂብ ጎታ ውስጥ እየሰሩም ቢሆን ትክክለኛ የዳታ የውሂብ ንድፍ ሁልጊዜ ጠቃሚ ነው. መረጃው ይበልጥ ቀላል እንዲሆን ከማድረጉም በላይ ለወደፊቱ የመረጃ ቋቱን ለማስፋፋት ቀላል ያደርገዋል. በሚያሳዝን ሁኔታ, ነገሮች ለወደፊቱ አስቸጋሪ ሊያደርጉባቸው በሚችሉ ጥቂት ወጥመዶች ውስጥ መውደቅ ቀላል ነው.

የውሂብ ጎታ የመመዘን ጉዳይ ላይ የተጻፉት ሙሉ መጽሐፍ ጽሑፎች አሉ, ነገር ግን እነዚህን ስህተቶች በቀላሉ ካስወገዱ ጥሩ የመረጃ ቋት ዲዛይን ላይ ይለወጣል.

የውሂብ ጎታ ማረም # 1: በሠንጠረዥ ውስጥ ያሉትን መስመሮች በመድገም ላይ

ለጥሩ የመረጃ ቋት ንድፍ መሰረታዊ ህግ አውራ ሒሳቡን መደገፍ እና እነዚያን ተደጋጋሚ ዓምዶች በራሳቸው ጠረጴዛ ላይ ማስቀመጥ ነው. በሰንጠረዥ ውስጥ ከሉች ቦታዎች መመለስ የተለመደ ነው, ነገር ግን የቀመር ሉሆች በዲዛይናቸው ጠፍጣፋ ሲሆኑ የውሂብ ጎታዎች ግን ዝምድና ያላቸው መሆን አለባቸው. ከ2D ወደ 3-መሄድ ያህል ነው.

እንደ እድል ሆኖ, ተደጋጋሚ መስኮችን ብዙ ጊዜ በቀላሉ ሊታይ ይችላል. በቀላሉ ይህን ሰንጠረዥ ይመልከቱ:

OrderID ምርት1 ምርት 2 ምርት3
1 ቴዲ ቢሬዎች Jelly Beans
2 Jelly Beans

ትዕዛዝ አራት ምርቶች ሲኖሩት ምን ይከሰታል? ከሶስት ምርቶች በላይ ለመደገፍ ወደ ሌላ ሠንጠረዥ ሌላ መስክ ማከል ያስፈልገናል. እንዲሁም የግብዓት ውሂብን ለማገዝ የደንበኛ መተግበሪያን ከሰንጠረዡን ገንብተን ከሆነ, በአዲሱ የምርት መስክ ማሻሻል ያስፈልገናል. እና ሁሉም ትዕዛዞችን ከጃሊሌዎች ጋር በቅደም ተከተል እንዴት ማግኘት እንችላለን? በሠንጠረዡ ውስጥ ያለውን ምርት ሁሉ መስክ ለመምረጥ እንገደዳለን: ከምርቶች መካከል SELECT * WHERE Product1 = 'Jelly Beans' ወይም Product2 = 'Jelly Beans' ወይም ምርት3 = 'Jelly Beans'.

ሁሉም መረጃ አንድ ላይ አንድ ጠረጴዛ ከመያዝ ይልቅ እያንዳንዳቸው የተናጠል መረጃን የሚይዙ ሦስት ጠረጴዛዎች ሊኖረን ይገባል. በዚህ ምሳሌ ላይ, ስለ ትዕዛዝ እራሱ, የምርቶች ሰንጠረዥ እና ምርቶቻችን በሙሉ ከትዕዛዝ ጋር የተገናኘ ምርት ምርት ኦርደር የተባለ መሳሪያ ጋር እንዲኖር እንፈልጋለን.

OrderID CustomerID የታዘዘበት ቀን ጠቅላላ
1 7 1/24/17 19.99
2 9 1/25/17 24.99
ProductID ምርት ቆጠሉ
1 ቴዲ ቢሬዎች 1
2 Jelly Beans 100
ProductOrderID ProductID OrderID
101 1 1
102 2 1

እያንዳንዱ ሰንጠረዥ የራሱ የሆነ የመታወቂያ መስክ እንዴት እንደሚኖረው ልብ ይበሉ. ይህ ዋና ቁልፍ ነው. በሌላ ሠንጠረዥ ውስጥ እንደ የውጭ ቁልፍ እንደ ዋና የውጭ ቁልፍ በመጠቀም ሰንጠረዦች እናገናኛለን. ስለ ዋና ቁልፎች እና የውጭ ቁልፎችን በተመለከተ ተጨማሪ ያንብቡ.

የውሂብ ጎታ ማረም # 2: ሰንጠረዥን በሠንጠረዥ ውስጥ መጨመር

ይህ ሌላኛው የተለመደ ስህተት ሲሆን ነገር ግን ሁልጊዜ እንደ ድግግሞሽ መስኮች ሁልጊዜ አይታዩም. የውሂብ ጎታ (ዲታቤዝ) ሲዘጋጁ, በሰንጠረዡ ውስጥ ያለው መረጃ ሁሉ ከራሱ ጋር እንደሚዛመድ ማረጋገጥ ይፈልጋሉ. ልክ የተለየ ህትመትን ለመመልከት ሲባል የልጅ ጨዋታ ጨዋታ አይነት ነው. ሙዝ, እንጆሪ, ስኳር እና ቴሌቪዥን ካላችሁ ቴሌቪዥን ምናልባት ሌላ ቦታ ሊሆን ይችላል.

በተመሳሳይ ገበታዎች ላይ የሽያጭ ሰዎች ሰንጠረዥ ካለዎት በዚያ ሰንጠረዥ ያሉት ሁሉም መረጃዎች ከዛ ሽያጩ ጋር የተያያዙ ናቸው. ለዚያ ሽያጭ የተለየ ማንኛውም ተጨማሪ መረጃ ምናልባት በርስዎ የውሂብ ጎታ ውስጥ ሊገኝ ይችላል.

SalesID አንደኛ መጨረሻ አድራሻ ስልክ ቁጥር ጽ / ቤት OfficeNumber
1 ሳም Elliot 118 Main St, Austin, TX (215) 555-5858 ኦስቲን ታንከን (212) 421-2412
2 አሊስ ስሚዝ 504 2 ኛ መንገድ, ኒው ዮርክ, ኒው ዮርክ (211) 122-1821 ኒው ዮርክ (ምስራቅ) (211) 855-4541
3 ፓሪሽ 428 Aker St, Austin, TX (215) 545-5545 ኦስቲን ታንከን (212) 421-2412

ይህ ሠንጠረዥ ከግለሰቡ ነጋዴዎች ጋር የሚዛመድ ሲሆን ይህም በሠንጠረዡ ውስጥ የተካተተ ሰንጠረዥ አለው. Office and OfficeNumber ከ "Austin Downtown" እንዴት እንደሚደጋገሙ ልብ ይበሉ. የቢሮ ስልክ ቁጥር ቢቀየር? አንድ ነጠላ መረጃን መለወጥ አንድ ሙሉ የውሂብ ስብስብ ማዘመን ያስፈልግዎታል, ይህ በጭራሽ ጥሩ ነገር አይደለም. እነዚህ መስኮች ወደራሳቸው ጠረጴዛ ይወሰዳሉ.

SalesID አንደኛ መጨረሻ አድራሻ ስልክ ቁጥር OfficeID
1 ሳም Elliot 118 Main St, Austin, TX (215) 555-5858 1
2 አሊስ ስሚዝ 504 2 ኛ መንገድ, ኒው ዮርክ, ኒው ዮርክ (211) 122-1821 2
3 ፓሪሽ 428 Aker St, Austin, TX (215) 545-5545 1
OfficeID ጽ / ቤት OfficeNumber
1 ኦስቲን ታንከን (212) 421-2412
2 ኒው ዮርክ (ምስራቅ) (211) 855-4541

ይህ አይነት ዲዛይን በአስረካቢው ሠንጠረዥ ውስጥ ቅዠት ሳይፈጠር ተጨማሪ መረጃዎችን ለቢሮ ጠረጴዛዎች የማከል ችሎታ ያቀርብልዎታል. ሁሉም መረጃ በሽያጭ ሠንጠረዥ ውስጥ ቢገኝ የመንገድ አድራሻ, ከተማ, ስቴት እና ዚፕ ኮድ ለመከታተል ምን ያህል ሥራ እንደሚሆን አስቡት!

የውሂብ ጎታ ማረም # 3: አንድ ወይም ሁለት ተጨማሪ መረጃን በአንድ ነጠላ መስክ ውስጥ ማስገባት

በቢዝነስ ውስጥ የቢሮ መረጃን በአስረካቢው ሠንጠረዥ ውስጥ መጨመር ብቻ አልነበረም. የአድራሻው መስክ ሦስት መረጃዎችን ይዟል: የጎዳና አድራሻ, ከተማ እና ግዛት. በውሂብ ጎታ ውስጥ ያለው እያንዳንዱ መስመር አንድ ነጠላ መረጃ ብቻ መያዝ አለበት. በአንድ ነጠላ መስክ ብዙ መረጃዎችን ሲያገኙ የመረጃ መዝጋቢውን ለመጠየቅ አስቸጋሪ ይሆናል.

ለምሳሌ, በኦስቲን የሚገኙ ሁሉንም የሽያጭ ጥያቄዎች ለመጠየቅ ብንፈልግስ? በአድራሻ መስኩ ውስጥ ውጤታማ ያልሆነ ብቻ ሳይሆን መጥፎ መረጃን መመለስ ይችላል. ከሁሉም በላይ አንድ ሰው በፖርትላንድ, ኦሪገን ውስጥ በኦስቲን ጎዳና ውስጥ ቢኖር ምን ይሆናል?

ሰንጠረዡ ምን እንደሚመስል ነው:

SalesID አንደኛ መጨረሻ አድራሻ 1 አድራሻ 2 ከተማ ግዛት ዚፕ ስልክ
1 ሳም Elliot 118 ዋና መንገድ ኦስቲን TX 78720 2155555858
2 አሊስ ስሚዝ 504 2 ኛ መንገድ ኒው ዮርክ ኒው ዮርክ 10022 2111221821
3 ፓሪሽ 428 Aker St አፕ 304 ኦስቲን TX 78716 2155455545

እዚህ የሚታዩ ሁለት ነገሮች አሉ. በመጀመሪያ "አድራሻ 1" እና "አድራሻ2" በተደጋጋሚ የመስኮት ስህተቶች ስር የሚወድ ይመስላል.

ሆኖም ግን, በዚህ ውስጥ የራሳቸውን ሰንጠረዥ ውስጥ ከሚገባው ይልቅ ከሚቀጥለው የቡድን መረጃ ይልቅ በቀጥታ ከሽያጩ ሰው ጋር የተያያዙ የተያዩ የውሂብ ቁርኝቶች ናቸው.

እንዲሁም ለማስወገድ እንደ ተጨማሪ የጉርሻ ምትክ የስልክ ቁጥር ቅርጸት እንዴት ጠረጴዛው ውስጥ እንደተጣለ ያስተውሉ. በተቻለ መጠን የተቻለውን ቅርጸት ከማከማቸት መቆጠብ አለብዎት. በስልክ ቁጥሮች ላይ ሰዎች የስልክ ቁጥር (215) 555-5858 ወይም (215) 555-5858 ይጽፋሉ. ይህ አንድ የሽያጭ ሰው በስልክ ቁጥርዎ ወይም በአካባቢያቸው ውስጥ ያሉ የሽያጭ ሰዎች ፍለጋ ሲያካሂዱ ይበልጥ አስቸጋሪ ይሆናል.

የውሂብ ጎታ ስህተት ቁጥር 4-ትክክለኛውን ቀዳሚ ቁልፍ አትጠቀም

በአብዛኛዎቹ አጋጣሚዎች ለዋና ቁልፍዎ በራስ ሰር የሚጨምር ቁጥር ወይም ሌላ ከተፈጠረ ቁጥር ወይም ፊደል ቁጥር ጋር መጠቀም ያስፈልግዎታል. ጥሩ መለያ የሚያምር ቢመስልም ለዋናው ቁልፍ ማንኛውንም ትክክለኛ መረጃ ከመጠቀም ይቆጠቡ.

ለምሳሌ, እያንዳንዳችን የራሳችን የሆነ የሶሻል ሰኩሪቲ ቁጥር አለን, ስለዚህ ለሰ ሠራተኛ የውሂብ ጎታ የማህበራዊ ዋስትና ቁጥጥርን መጠቀም ጥሩ ሐሳብ ነው. በጣም ብዙ ቢሆንም, የሶሺያል ሴኩሪቲ ቁጥር እንኳን ለመለወጥ ይቻላል, እና ቀዳሚ ቁልፍዎ እንዲለወጥ አንፈልግም.

እና እውነተኛው መረጃ እንደ ቁልፍ እሴት መጠቀሙ ችግር ነው. ሊለወጥ ይችላል.

የውሂብ ጎታ ማረም # 5: ስም የማውጣት ስምምነትን አይጠቀሙ

የውሂብ ጎታዎን ለመጀመሪያ ጊዜ ዲዛይን ሲጀምሩ ይህ ትልቅ ነገር አይመስልዎትም, ነገር ግን አንዴ ከተመዘገቡበት ዳታዎቼ መረጃን ለመሰብሰብ የመጠቆም ነጥብ ላይ ሲደርሱ, ስም ማስያዣ ስምምነቱን ሲይዝ የመስክ ስሞችን ይጽፋሉ.

ይህ ሂደት ምን ያህል አስቸጋሪ እንደሚሆን አስቡት, ስሞች እንደ FirstName, LastName በአንድ ሰንጠረዥ እና የመጀመሪያ_ስም, እንዲሁም በሌላ ሰንጠረዥ ውስጥ የመጨረሻ ስም.

ሁለቱ የታወቁት ስም ማወጃዎች የእያንዳንዱን ቃል የመጀመሪያ ፊደል በማቃጠል ወይም ምልክት በተደረገባቸው ቃላት መለየት ናቸው. በተጨማሪም አንዳንድ ገንቢዎች የመጀመሪያውን ቃል ሳይጨምሩ የእያንዳንዱን ቃል የመጀመሪያ ፊደል ካሟሉ ሊያዩዋቸው ይችላሉ-firstName, lastName.

እንዲሁም ነጠላ ሰንጠረዥ ስሞችን ወይም የበርካታ የጠረጴዛ ስሞችን መጠቀም ላይ ለመወሰን ይችላሉ. የትዕዛዝ ሰንጠረዥ ወይም ትዕዛዝ ሰንጠረዥ ነውን? የደንበኛ ሠንጠረዥ ወይም የደንበኛዎች ሠንጠረዥ ነው? እንደገናም, ከትዕዛዝ ሰንጠረዥ እና ከደንበኛዎች ሰንጠረዥ ጋር ለመቆየት አይፈልጉም.

የመረጥከው የስምምነት ውል ስም ከማውጣት ስም ጋር የመምረጥ ሂደት ላይ ያን ያህል አስፈላጊ አይደለም.

የውሂብ ጎታ ማጣት # 6: አግባብ ያልሆነ ኢንዴክስ ማድረግ

በቀጣይ ለመመዝገብ በጣም አስቸጋሪ ከሆኑት ነገሮች አንዱ ኢንዴክስ ማድረግ ነው. ሁሉም ዋና ቁልፎች እና የውጭ ቁልፎች ማመሳከር አለባቸው. እነዚህ የጋራ አገናኝ ሰንጠረዦች ናቸው, ያለ ማውጫ, ያለክፍያ የውጤትዎን የውሂብ ጎታዎን ያያሉ.

ይሁን እንጂ ብዙውን ጊዜ ያልጠበቁ ሌሎች መስኮች ናቸው. እነዚህ "WHERE" መስኮች ናቸው. አብዛኛውን ጊዜ በ WHERE ሐረግ ውስጥ በመስክ ፍለጋዎን ለማጥበብ ከፈለጉ በዛ መስክ ላይ ማውጫን ማስቀመጥ ማሰብ ይፈልጋሉ. ሆኖም ግን, ሰንጠረዥን ጠቋሚውን ማመሳከርን አይፈልጉም, ይህም ውጤትን ሊጎዳ ይችላል.

እንዴት እንደሚወስኑ? ይህ የውሂብ ጎታ ንድፍ አካል ነው. በጠረጴዛ ላይ ምን ያህል ኢንዴክሶች እንደሚያስቀምጡ ከባድ ገደቦች የሉም. በዋነኛነት በ ውስጥ WHERE ሐረግ ውስጥ በአገልግሎት ላይ የሚውለውን ማንኛውም መስክ ለመጠቆም ይፈልጋሉ. ስለአድራሻዎ በመረጃ ቋት ማውጫ ላይ ተጨማሪ ያንብቡ.