កំហុសជាទូទៅធ្វើឡើងក្នុងការរៀបចំមូលដ្ឋានទិន្នន័យ

មិនថាអ្នកកំពុងធ្វើការជាមួយមូលដ្ឋានទិន្ន័យដែលផ្ទុកទិន្នន័យរាប់រយឬកំណត់ត្រារាប់លានការរចនាមូលដ្ឋានទិន្នន័យត្រឹមត្រូវតែងតែសំខាន់។ វាមិនត្រឹមតែអាចទាញយកព័ត៌មានបានកាន់តែងាយស្រួលនោះទេវាថែមទាំងងាយស្រួលក្នុងការពង្រីកមូលដ្ឋានទិន្នន័យនាពេលអនាគតផងដែរ។ ជាអកុសលវាងាយស្រួលក្នុងការធ្លាក់ចូលអន្ទាក់មួយចំនួនដែលអាចធ្វើឱ្យរឿងពិបាកក្នុងពេលអនាគត។

មានសៀវភៅទាំងស្រុងដែលសរសេរលើប្រធានបទនៃការធ្វើមូលដ្ឋានទិន្នន័យជាធម្មតាប៉ុន្តែប្រសិនបើអ្នកគ្រាន់តែជៀសវាងកំហុសឆ្គងទាំងនេះអ្នកនឹងមានផ្លូវត្រឹមត្រូវក្នុងការរចនាមូលដ្ឋានទិន្នន័យល្អ។

កំហុសក្នុងមូលដ្ឋានទិន្នន័យ # 1: ធ្វើម្តងទៀតវាលក្នុងតារាងមួយ

ក្បួនមូលដ្ឋាននៃមេដៃសម្រាប់ការរចនាមូលដ្ឋានទិន្នន័យល្អគឺដើម្បីទទួលស្គាល់ការធ្វើឡើងវិញទិន្នន័យនិងដើម្បីដាក់ជួរឈរទាំងនោះឡើងវិញនៅក្នុងតារាងរបស់ពួកគេផ្ទាល់។ ធ្វើម្តងទៀតវាលនៅក្នុងតារាងមួយជារឿងធម្មតាសម្រាប់អ្នកដែលមកពីពិភពនៃសៀវភៅបញ្ជីប៉ុន្តែខណៈពេលដែលសៀវភៅបញ្ជីមានលំអៀងទៅនឹងការរចនាដោយរចនាមូលដ្ឋានទិន្នន័យគួរមានទំនាក់ទំនង។ វាដូចជាចូលពី 2D ទៅ 3D ។

សំណាងល្អវាលដោះដែលងាយស្រួលមើល។ សូមក្រឡេកមើលតារាងនេះ:

លេខ​សម្គាល់​លំដាប់ ផលិតផល 1 ផលិតផល 2 ផលិតផល 3
1 Teddy Bears សណ្តែកចាលី
2 សណ្តែកចាលី

តើមានអ្វីកើតឡើងនៅពេលបញ្ជាមានផលិតផល 4? យើងចាំបាច់ត្រូវបន្ថែមវាលមួយផ្សេងទៀតទៅក្នុងតារាងដើម្បីគាំទ្រដល់ផលិតផលជាងបី។ ហើយប្រសិនបើយើងបានបង្កើតកម្មវិធីអតិថិជនមួយនៅជុំវិញតុដើម្បីជួយយើងក្នុងទិន្នន័យបញ្ចូលយើងប្រហែលជាត្រូវកែប្រែវាជាមួយវាលផលិតផលថ្មី។ ហើយតើយើងរកឃើញការបញ្ជាទិញទាំងអស់ជាមួយ Jellybeans តាមរបៀបណា? យើងនឹងត្រូវបង្ខំសួររាល់វាលផលិតផលក្នុងតារាងជាមួយសេចក្តីថ្លែងការណ៍ SQL មួយដែលអាចមើលទៅដូចជា: SELECT * FROM ផលិតផល WHERE ផលិតផល = 'សណ្តែកចាន' ឬផលិតផល 2 = 'ក្លែងក្លាយសណ្តែក' ឬផលិតផល 3 = 'សណ្តែកចេលី' ។

ជំនួសឱ្យការមានតារាងតែមួយដែលផ្ទុកព័ត៌មានទាំងអស់ជាមួយគ្នាយើងគួរតែមានតារាងបីដែលនីមួយៗផ្ទុកព័ត៌មានខុស ៗ គ្នា។ នៅក្នុងឧទាហរណ៍នេះយើងចង់បានតារាងបញ្ជាទិញជាមួយនឹងព័ត៌មានអំពីលំដាប់ខ្លួនឯងតារាងផលិតផលជាមួយនឹងផលិតផលរបស់យើងទាំងអស់និងឧបករណ៍ Tablet ផលិតផល Orders ដែលភ្ជាប់ផលិតផលទៅតាមលំដាប់។

លេខ​សម្គាល់​លំដាប់ លេខ​សម្គាល់​អតិថិជន កាល​បរិច្ឆេទ​បញ្ជា​ទិញ សរុប
1 7 1/24/17 19.99
2 9 1/25/17 24.99
ផលិតផល ID ផលិតផល រាប់
1 Teddy Bears 1
2 សណ្តែកចាលី 100
ProductOrderID ផលិតផល ID លេខ​សម្គាល់​លំដាប់
101 1 1
102 2 1

សូមកត់សម្គាល់ពីរបៀបដែលតារាងនីមួយៗមានវាលអត្តសញ្ញាណតែមួយគត់របស់វា។ នេះគឺជាកូនសោសំខាន់។ យើងភ្ជាប់តារាងដោយប្រើគ្រាប់ចុចសំខាន់ជាគន្លឹះបរទេសនៅក្នុងតារាងផ្សេងទៀត។ អានបន្ថែមអំពីកូនសោសំខាន់និងកូនសោបរទេស។

ការក្លែងបន្លំមូលដ្ឋានទិន្នន័យ # 2: បង្កប់តារាងក្នុងតារាង

នេះគឺជាកំហុសធម្មតាមួយទៀតប៉ុន្តែវាមិនតែងតែមានលក្ខណៈចង្អៀតទេ។ នៅពេលរចនាមូលដ្ឋានទិន្នន័យអ្នកចង់ធ្វើឱ្យប្រាកដថាទិន្នន័យទាំងអស់នៅក្នុងតារាងមួយទាក់ទងនឹងខ្លួនវា។ វាដូចជាការលេងល្បែងរបស់កូនក្មេងអំពីការមើលអ្វីខុសគ្នា។ ប្រសិនបើអ្នកមានចេកស្ទីលប៊ឺសនិងហ្វេសប៊ុកទូរទស្សន៍អាចជាកន្លែងផ្សេង។

នៅលើបន្ទាត់ដូចគ្នានេះដែរប្រសិនបើអ្នកមានតារាងនៃអ្នកលក់ព័ត៌មានទាំងអស់នៅក្នុងតារាងនោះគួរតែទាក់ទងជាពិសេសទៅនឹងអ្នកលក់នោះ។ ព័ត៌មានបន្ថែមណាមួយដែលមិនមានតែមួយគត់ចំពោះអ្នកលក់នោះអាចជាកន្លែងផ្សេងទៀតនៅក្នុងមូលដ្ឋានទិន្នន័យរបស់អ្នក។

SalesID ដំបូង ចុងក្រោយ អាសយដ្ឋាន លេខទូរសព្ទ ការិយាល័យ លេខការិយាល័យ
1 Elliot 118 Main St, Austin, TX (215) 555-5858 ទីក្រុងអូស្ទីន (212) 421-2412
2 Alice ស្មី 504 ផ្លូវ 2, ញូវយ៉ក, ញូវយ៉ក (211) 122-1821 ញូវយ៉ក (ខាងកើត) (211) 855-4541
3 Joe ព្រះសហគមន៍កាតូលិក 428 Aker St, Austin, TX (215) 545-5545 ទីក្រុងអូស្ទីន (212) 421-2412

ខណៈពេលដែលតារាងនេះអាចនឹងមើលទៅដូចជាវាត្រូវបានទាក់ទងទាំងអស់ទៅអ្នកលក់បុគ្គលវាពិតជាមានតារាងដែលបានបង្កប់នៅក្នុងតារាង។ សូមកត់សម្គាល់ពីរបៀបដែល Office និង OfficeNumber ធ្វើម្តងទៀតជាមួយ "Austin Downtown" ។ ចុះបើលេខទូរស័ព្ទការិយាល័យមានការប្រែប្រួល? អ្នកចាំបាច់ត្រូវធ្វើបច្ចុប្បន្នភាពសំណុំទិន្នន័យទាំងមូលសម្រាប់តែការផ្លាស់ប្តូរព័ត៌មានតែមួយគត់ដែលមិនមែនជារឿងល្អទេ។ វាលទាំងនេះគួរតែត្រូវបានផ្លាស់ទីទៅតារាងផ្ទាល់ខ្លួនរបស់ពួកគេ។

SalesID ដំបូង ចុងក្រោយ អាសយដ្ឋាន លេខទូរសព្ទ OfficeID
1 Elliot 118 Main St, Austin, TX (215) 555-5858 1
2 Alice ស្មី 504 ផ្លូវ 2, ញូវយ៉ក, ញូវយ៉ក (211) 122-1821 2
3 Joe ព្រះសហគមន៍កាតូលិក 428 Aker St, Austin, TX (215) 545-5545 1
OfficeID ការិយាល័យ លេខការិយាល័យ
1 ទីក្រុងអូស្ទីន (212) 421-2412
2 ញូវយ៉ក (ខាងកើត) (211) 855-4541

ប្រភេទនៃការរចនានេះក៏ផ្តល់ឱ្យអ្នកនូវសមត្ថភាពក្នុងការបន្ថែមព័ត៌មានបន្ថែមទៅតុការិយាល័យដោយមិនបង្កើតសុបិន្តអាក្រក់នៅកន្លែងលក់ដូរ។ ស្រមៃមើលថាតើមានការងារប៉ុន្មានដែលត្រូវធ្វើដោយគ្រាន់តែតាមដានអាស័យដ្ឋានផ្លូវទីក្រុងរដ្ឋលេខកូដប្រៃសណីយ៍ប្រសិនបើគ្រប់ព័ត៌មានទាំងអស់នោះស្ថិតនៅក្នុងតារាងបុគ្គលិកលក់ដូរ!

ការក្លែងបន្លំមូលដ្ឋានទិន្នន័យ # 3: ការបញ្ចូលពត៌មានពីរឬច្រើនទៅក្នុងវាលតែមួយ

ការបង្កប់ព័ត៌មានការិយាល័យទៅក្នុងតារាងបុគ្គលិកផ្នែកលក់មិនមែនជាបញ្ហាតែមួយគត់ជាមួយប្រព័ន្ធទិន្នន័យនោះទេ។ វាលអាសយដ្ឋានមានផ្ទុកព័ត៌មានចំនួនបី: អាស័យដ្ឋានផ្លូវទីក្រុងនិងរដ្ឋ។ វាលនីមួយៗនៅក្នុងឃ្លាំងទិន្នន័យគួរតែផ្ទុកតែព័ត៌មានមួយដុំប៉ុណ្ណោះ។ នៅពេលអ្នកមានពត៌មានជាច្រើននៅក្នុងវាលតែមួយវាអាចពិបាកក្នុងការសួរមូលដ្ឋានទិន្នន័យសម្រាប់ព័ត៌មាន។

ឧទាហរណ៏, អ្វីដែលប្រសិនបើយើងចង់រត់សំណួរនៅលើមនុស្សទាំងអស់ការលក់ពីអូស្ទីន? យើងនឹងត្រូវស្វែងរកក្នុងវាលអាសយដ្ឋានដែលមិនត្រឹមតែប្រសិទ្ធភាពប៉ុន្តែអាចត្រឡប់ព័ត៌មានអាក្រក់។ យ៉ាងណាមិញតើមានអ្វីកើតឡើងបើសិនជាមាននរណាម្នាក់រស់នៅលើផ្លូវ Austin នៅ Portland, Oregon?

នេះជាអ្វីដែលតារាងគួរមាន:

SalesID ដំបូង ចុងក្រោយ អាសយដ្ឋាន 1 អាសយដ្ឋាន 2 ទីក្រុង រដ្ឋ ហ្ស៊ីប ទូរស័ព្ទ
1 Elliot 118 ផ្លូវមេ អូស្ទីន TX 78720 2155555858
2 Alice ស្មី 504 ផ្លូវទី 2 ញូវយ៉ក ញូវយ៉ក 10022 2111221821
3 Joe ព្រះសហគមន៍កាតូលិក 428 Aker St Apt 304 អូស្ទីន TX 78716 2155455545

មានរឿងមួយចំនួនដែលត្រូវកត់សម្គាល់នៅទីនេះ។ ទីមួយ "អាស័យដ្ឋានទី 1" និង "អាស័យដ្ឋានទី 2" ហាក់ដូចជាធ្លាក់នៅក្រោមកំហុសច្រឡំ។

ទោះយ៉ាងណាក៏ដោយក្នុងករណីនេះពួកគេសំដៅទៅលើបំណែកដាច់ដោយឡែកនៃទិន្នន័យដែលទាក់ទងដោយផ្ទាល់ទៅនឹងការលក់មនុស្សជាជាងក្រុមទិន្នន័យដែលត្រូវនិយាយឡើងវិញដែលគួរចូលក្នុងតារាងរបស់ខ្លួន។

ដូចគ្នានេះផងដែរដោយសារតែកំហុសឆ្គងមួយដើម្បីចៀសវាងសូមកត់សម្គាល់ពីរបៀបដែលការធ្វើទ្រង់ទ្រាយសំរាប់លេខទូរស័ព្ទត្រូវបានដកចេញពីតុ។ អ្នកគួរជៀសវាងការរក្សាទុកទ្រង់ទ្រាយនៃវាលនៅពេលដែលអាចធ្វើទៅបាន។ ក្នុងករណីមានលេខទូរស័ព្ទមានវិធីជាច្រើនដែលអ្នកសរសេរលេខទូរស័ព្ទ: 215-555-5858 ឬ (215) 555-5858 ។ នេះនឹងធ្វើឱ្យការស្វែងរកអ្នកលក់តាមលេខទូរស័ព្ទរបស់ពួកគេឬធ្វើការស្វែងរកអ្នកលក់នៅក្នុងកូដតំបន់ដូចគ្នាកាន់តែលំបាក។

ការក្លែងបន្លំមូលដ្ឋានទិន្នន័យ # 4: មិនប្រើកូនសោសំខាន់

ក្នុងករណីភាគច្រើនអ្នកនឹងចង់ប្រើលេខបង្កើនស្វ័យប្រវត្តិឬលេខដែលបានបង្កើតមួយចំនួនផ្សេងទៀតឬអក្សរក្រមលេខសម្រាប់កូនសោសំខាន់របស់អ្នក។ អ្នកគួរតែជៀសវាងការប្រើប្រាស់ព័ត៌មានពិតប្រាកដណាមួយសម្រាប់កូនសោសំខាន់ទោះបីជាវាមើលទៅហាក់ដូចជាវាបង្កើតអត្តសញ្ញាណដ៏ល្អក៏ដោយ។

ឧទាហរណ៍យើងម្នាក់ៗមានលេខសន្តិសុខសង្គមរបស់យើងម្នាក់ៗដូច្នេះការប្រើលេខសន្តិសុខសង្គមសម្រាប់ទិន្នន័យនិយោជិតអាចជាគំនិតល្អ។ ប៉ុន្តែទោះជាកម្រក៏ដោយក៏វាអាចមានសម្រាប់លេខសន្តិសុខសង្គមដើម្បីផ្លាស់ប្តូរហើយយើងក៏មិនចង់ឱ្យគន្លឹះសំខាន់របស់យើងផ្លាស់ប្តូរដែរ។

ហើយនោះគឺជាបញ្ហាជាមួយការប្រើប្រាស់ព័ត៌មានពិតប្រាកដដែលជាតម្លៃគន្លឹះ។ វាអាចផ្លាស់ប្តូរបាន។

ការក្លែងបន្លំមូលដ្ឋានទិន្នន័យ # 5: មិនប្រើអនុសញ្ញាដាក់ឈ្មោះ

នេះប្រហែលជាមិនមែនជាកិច្ចព្រមព្រៀងធំទេនៅពេលអ្នកចាប់ផ្តើមបង្កើតមូលដ្ឋានទិន្នន័យរបស់អ្នកប៉ុន្តែនៅពេលដែលអ្នកទៅដល់ចំណុចនៃការសរសេរសំណួរប្រឆាំងនឹងមូលដ្ឋានទិន្នន័យដើម្បីទាញយកព័ត៌មាននោះការមានអនុសញ្ញាដាក់ឈ្មោះនឹងជួយនៅពេលអ្នកទន្ទេញឈ្មោះវាល។

គ្រាន់តែស្រមៃថាតើដំណើរការនេះកាន់តែពិបាកជាងបើឈ្មោះត្រូវបានរក្សាទុកជា FirstName, LastName ក្នុងតារាងមួយនិងឈ្មោះដំបូង, ឈ្មោះចុងក្រោយនៅក្នុងតារាងផ្សេងទៀត។

អនុសញ្ញាការដាក់ឈ្មោះដែលមានប្រជាប្រិយភាពបំផុតទាំងពីរកំពុងធ្វើឱ្យអក្សរដំបូងនៃពាក្យទាំងអស់នៅក្នុងវាលឬបំបែកពាក្យដោយប្រើសញ្ញាគូសក្រោម។ អ្នកក៏អាចឃើញអ្នកអភិវឌ្ឍន៍ខ្លះសរសេរអក្សរដំបូងនៃពាក្យទាំងអស់លើកលែងតែពាក្យដំបូង: firstName, lastName ។

អ្នកក៏នឹងចង់សម្រេចចិត្តប្រើឈ្មោះតារាងឬឈ្មោះតារាងពហុវចនៈដែរ។ តើវាជាតារាងលំដាប់ឬតារាងបញ្ជាទិញឬ? តើវាជាតុអតិថិជនឬតារាងអតិថិជនទេ? ជាថ្មីម្តងទៀតអ្នកមិនចង់ជាប់ជាមួយតារាងលំដាប់និងតារាងអតិថិជនទេ។

អនុសញ្ញាដាក់ឈ្មោះដែលអ្នកជ្រើសរើសមិនមែនជាការសំខាន់ដូចដំណើរការនៃការជ្រើសរើសនិងជាប់នឹងអនុសញ្ញានៃការដាក់ឈ្មោះនោះទេ។

កំហុសមូលដ្ឋានទិន្នន័យ # 6: ការបង្កើតលិបិក្រមមិនត្រឹមត្រូវ

ការបង្កើតលិបិក្រមគឺជារឿងដែលពិបាកបំផុតដើម្បីទទួលបានជាពិសេសសម្រាប់អ្នកបង្កើតទិន្នន័យថ្មី។ កូនសោសំខាន់ៗនិងគ្រាប់ចុចបរទេសត្រូវតែដាក់លិបិក្រម។ ទាំងនេះគឺជាអ្វីដែលភ្ជាប់តារាងជាមួយគ្នាដូច្នេះដោយគ្មានលិបិក្រមអ្នកនឹងឃើញលទ្ធផលតិចតួចចេញពីមូលដ្ឋានទិន្នន័យរបស់អ្នក។

ប៉ុន្តែអ្វីដែលត្រូវបានគេខកខានជាញឹកញាប់គឺវាលផ្សេងទៀត។ ទាំងនេះគឺជាវាល "WHERE" ។ ប្រសិនបើអ្នកចង់បង្រួមការស្វែងរករបស់អ្នកដោយប្រើវាលមួយនៅក្នុងឃ្លា WHERE អ្នកចង់គិតអំពីការដាក់លិបិក្រមនៅលើវាលនោះ។ ទោះជាយ៉ាងណាក៏ដោយអ្នកមិនចង់ធ្វើតារាងលិបិក្រមយ៉ាងហួសហេតុដែលអាចប៉ះពាល់ដល់ការអនុវត្តផងដែរ។

តើធ្វើដូចម្តេចដើម្បីសម្រេចចិត្ត? នេះគឺជាផ្នែកមួយនៃសិល្បៈនៃការរចនាមូលដ្ឋានទិន្នន័យ។ មិនមានដែនកំណត់រឹងមាំលើចំនួនលិបិក្រមដែលអ្នកគួរដាក់នៅលើតារាងទេ។ ជាចម្បងអ្នកចង់លិបិក្រមវាលដែលត្រូវបានប្រើជាញឹកញាប់នៅក្នុងឃ្លា WHERE ។ អានបន្ថែមអំពីការបង្កើតលិបិក្រមរបស់អ្នកឱ្យបានត្រឹមត្រូវ។