உள்ளடக்கம்
- ஒரு அட்டவணையில் புலங்களை மீண்டும் செய்வது
- ஒரு அட்டவணையில் ஒரு அட்டவணையை உட்பொதித்தல்
- இரண்டு அல்லது அதற்கு மேற்பட்ட தகவல்களை ஒரு புலத்தில் வைப்பது
- சரியான முதன்மை விசையைப் பயன்படுத்தவில்லை
- பெயரிடும் மாநாட்டைப் பயன்படுத்தவில்லை
- முறையற்ற அட்டவணைப்படுத்தல்
நூற்றுக்கணக்கான பதிவுகள் அல்லது மில்லியன் கணக்கான பதிவுகளை வைத்திருக்கும் தரவுத்தளத்துடன் நீங்கள் பணியாற்றினாலும், சரியான தரவுத்தள வடிவமைப்பு எப்போதும் முக்கியமானது. இது தகவல்களை மீட்டெடுப்பதை மிகவும் எளிதாக்குவது மட்டுமல்லாமல், எதிர்காலத்தில் தரவுத்தளத்தை விரிவாக்குவதையும் எளிதாக்கும். துரதிர்ஷ்டவசமாக, எதிர்காலத்தில் விஷயங்களை கடினமாக்கும் சில பொறிகளில் விழுவது எளிது.
ஒரு தரவுத்தளத்தை இயல்பாக்குவது என்ற தலைப்பில் முழு புத்தகங்களும் எழுதப்பட்டுள்ளன, ஆனால் இங்கே காட்டப்பட்டுள்ள பொதுவான தவறுகளை நீங்கள் தவிர்த்துவிட்டால், நல்ல தரவுத்தள வடிவமைப்பிற்கு நீங்கள் சரியான பாதையில் செல்வீர்கள்.
ஒரு அட்டவணையில் புலங்களை மீண்டும் செய்வது
நல்ல தரவுத்தள வடிவமைப்பிற்கான கட்டைவிரல் விதி, மீண்டும் மீண்டும் தரவை அங்கீகரிப்பதும், மீண்டும் மீண்டும் வரும் நெடுவரிசைகளை அவற்றின் சொந்த அட்டவணையில் வைப்பதும் ஆகும். ஒரு அட்டவணையில் புலங்களை மீண்டும் செய்வது விரிதாள்களின் உலகத்திலிருந்து வந்தவர்களுக்கு பொதுவானது, ஆனால் விரிதாள்கள் வடிவமைப்பால் தட்டையாக இருக்கும்போது, தரவுத்தளங்கள் தொடர்புடையதாக இருக்க வேண்டும். இது 2 டி முதல் 3 டி வரை செல்வது போன்றது.
அதிர்ஷ்டவசமாக, மீண்டும் மீண்டும் வரும் புலங்களை கண்டறிவது எளிது. இந்த அட்டவணையைப் பாருங்கள்:
ஆர்டர் ஐடி | தயாரிப்பு 1 | தயாரிப்பு 2 | தயாரிப்பு 3 |
1 | டெடி பியர்ஸ் | ஜெல்லி பீன்ஸ் | |
2 | ஜெல்லி பீன்ஸ் |
ஒரு ஆர்டரில் நான்கு தயாரிப்புகள் இருக்கும்போது என்ன நடக்கும்? மூன்று தயாரிப்புகளுக்கு மேல் ஆதரிக்க மற்றொரு புலத்தை அட்டவணையில் சேர்க்க வேண்டும். தரவை உள்ளீடு செய்ய எங்களுக்கு உதவ ஒரு கிளையன்ட் பயன்பாட்டை அட்டவணையில் கட்டியிருந்தால், அதை புதிய தயாரிப்பு புலத்துடன் மாற்ற வேண்டியிருக்கும். வரிசையில் ஜெல்லிபீன்ஸ் உடனான அனைத்து ஆர்டர்களையும் எவ்வாறு கண்டுபிடிப்பது? அட்டவணையில் உள்ள ஒவ்வொரு தயாரிப்புத் துறையையும் ஒரு SQL அறிக்கையுடன் வினவ வேண்டிய கட்டாயத்தில் இருப்போம்: தயாரிப்புகளைத் தேர்ந்தெடுக்கவும் * தயாரிப்பு 1 = 'ஜெல்லி பீன்ஸ்' அல்லது தயாரிப்பு 2 = 'ஜெல்லி பீன்ஸ்' அல்லது தயாரிப்பு 3 = 'ஜெல்லி பீன்ஸ்'.
எல்லா தகவல்களையும் ஒன்றாக இணைக்கும் ஒரு அட்டவணையை வைத்திருப்பதற்கு பதிலாக, ஒவ்வொன்றும் ஒரு தனித்துவமான தகவலை வைத்திருக்கும் மூன்று அட்டவணைகள் இருக்க வேண்டும். இந்த எடுத்துக்காட்டில், ஆர்டரைப் பற்றிய தகவல்களைக் கொண்ட ஆர்டர்கள் அட்டவணை, எங்கள் தயாரிப்புகள் அனைத்தையும் கொண்ட தயாரிப்புகள் அட்டவணை மற்றும் தயாரிப்புகளை வரிசையுடன் இணைக்கும் ஒரு தயாரிப்பு ஆர்டர்ஸ் டேப்லெட் ஆகியவற்றை நாங்கள் விரும்புகிறோம்.
ஆர்டர் ஐடி | வாடிக்கையாளர் ஐடி | ஆர்டர் தேதி | மொத்தம் |
1 | 7 | 1/24/17 | 19.99 |
2 | 9 | 1/25/17 | 24.99 |
தயாரிப்பு ஐடி | தயாரிப்பு | எண்ணிக்கை |
1 | டெடி பியர்ஸ் | 1 |
2 | ஜெல்லி பீன்ஸ் | 100 |
ProductOrderID | தயாரிப்பு ஐடி | ஆர்டர் ஐடி |
101 | 1 | 1 |
102 | 2 | 1 |
ஒவ்வொரு அட்டவணைக்கும் அதன் தனித்துவமான ஐடி புலம் எவ்வாறு உள்ளது என்பதைக் கவனியுங்கள். இது முதன்மை விசை. முதன்மை அட்டவணையை மற்றொரு அட்டவணையில் வெளிநாட்டு விசையாகப் பயன்படுத்துவதன் மூலம் அட்டவணையை இணைக்கிறோம்.
ஒரு அட்டவணையில் ஒரு அட்டவணையை உட்பொதித்தல்
இது மற்றொரு பொதுவான தவறு, ஆனால் இது எப்போதும் திரும்பத் திரும்ப வரும் புலங்களைப் போலவே தனித்து நிற்காது. ஒரு தரவுத்தளத்தை வடிவமைக்கும்போது, ஒரு அட்டவணையில் உள்ள எல்லா தரவும் தனக்குத்தானே தொடர்புடையது என்பதை உறுதிப்படுத்த வேண்டும். வித்தியாசமானதைக் கண்டுபிடிப்பது குறித்த குழந்தையின் விளையாட்டு போன்றது. உங்களிடம் ஒரு வாழைப்பழம், ஒரு ஸ்ட்ராபெரி, ஒரு பீச் மற்றும் ஒரு தொலைக்காட்சி தொகுப்பு இருந்தால், தொலைக்காட்சி தொகுப்பு அநேகமாக வேறு எங்காவது சொந்தமானது.
அதே வழியில், உங்களிடம் விற்பனையாளர்களின் அட்டவணை இருந்தால், அந்த அட்டவணையில் உள்ள அனைத்து தகவல்களும் அந்த விற்பனையாளருடன் குறிப்பாக தொடர்புபடுத்தப்பட வேண்டும். அந்த விற்பனையாளருக்கு தனித்துவமற்ற எந்த கூடுதல் தகவலும் உங்கள் தரவுத்தளத்தில் வேறு எங்காவது இருக்கலாம்.
SalesID | முதலில் | கடந்த | முகவரி | தொலைபேசி எண் | அலுவலகம் | OfficeNumber |
1 | சாம் | எலியட் | 118 மெயின் ஸ்ட்ரீட், ஆஸ்டின், டி.எக்ஸ் | (215) 555-5858 | ஆஸ்டின் டவுன்டவுன் | (212) 421-2412 |
2 | ஆலிஸ் | ஸ்மித் | 504 2 வது தெரு, நியூயார்க், NY | (211) 122-1821 | நியூயார்க் (கிழக்கு) | (211) 855-4541 |
3 | ஓஹோ | பாரிஷ் | 428 அகர் செயின்ட், ஆஸ்டின், டி.எக்ஸ் | (215) 545-5545 | ஆஸ்டின் டவுன்டவுன் | (212) 421-2412 |
இந்த அட்டவணை தனிப்பட்ட விற்பனையாளருடன் தொடர்புடையது போல் தோன்றினாலும், அது உண்மையில் அட்டவணையில் உட்பொதிக்கப்பட்ட அட்டவணையைக் கொண்டுள்ளது. ஆஃபீஸ் மற்றும் ஆபிஸ்நம்பர் "ஆஸ்டின் டவுன்டவுன்" உடன் எவ்வாறு மீண்டும் வருகின்றன என்பதைக் கவனியுங்கள். அலுவலக தொலைபேசி எண் மாறினால் என்ன செய்வது? ஒரு ஒற்றை தகவல் மாற்றத்திற்கான முழுத் தரவையும் நீங்கள் புதுப்பிக்க வேண்டும், இது ஒருபோதும் நல்ல விஷயம் அல்ல. இந்த புலங்கள் அவற்றின் சொந்த அட்டவணைக்கு நகர்த்தப்பட வேண்டும்.
SalesID | முதலில் | கடந்த | முகவரி | தொலைபேசி எண் | OfficeID |
1 | சாம் | எலியட் | 118 மெயின் ஸ்ட்ரீட், ஆஸ்டின், டி.எக்ஸ் | (215) 555-5858 | 1 |
2 | ஆலிஸ் | ஸ்மித் | 504 2 வது தெரு, நியூயார்க், NY | (211) 122-1821 | 2 |
3 | ஓஹோ | பாரிஷ் | 428 அகர் செயின்ட், ஆஸ்டின், டி.எக்ஸ் | (215) 545-5545 | 1 |
OfficeID | அலுவலகம் | OfficeNumber |
1 | ஆஸ்டின் டவுன்டவுன் | (212) 421-2412 |
2 | நியூயார்க் (கிழக்கு) | (211) 855-4541 |
விற்பனையாளர் அட்டவணையில் ஒழுங்கீனத்தின் ஒரு கனவை உருவாக்காமல் அலுவலக அட்டவணையில் கூடுதல் தகவல்களைச் சேர்க்கும் திறனையும் இந்த வகை வடிவமைப்பு உங்களுக்கு வழங்குகிறது. அந்தத் தகவல்கள் அனைத்தும் விற்பனையாளர் அட்டவணையில் இருந்தால், தெரு முகவரி, நகரம், மாநிலம் மற்றும் ஜிப் குறியீட்டைக் கண்காணிப்பது எவ்வளவு வேலை என்று கற்பனை செய்து பாருங்கள்!
இரண்டு அல்லது அதற்கு மேற்பட்ட தகவல்களை ஒரு புலத்தில் வைப்பது
அலுவலக தகவலை விற்பனை நபர் அட்டவணையில் உட்பொதிப்பது அந்த தரவுத்தளத்தில் உள்ள ஒரே பிரச்சினை அல்ல. முகவரி புலத்தில் மூன்று தகவல்கள் உள்ளன: தெரு முகவரி, நகரம் மற்றும் மாநிலம். தரவுத்தளத்தில் உள்ள ஒவ்வொரு புலத்திலும் ஒரே ஒரு தகவல் மட்டுமே இருக்க வேண்டும். ஒரே துறையில் உங்களிடம் பல தகவல்கள் இருக்கும்போது, தகவலுக்கான தரவுத்தளத்தை வினவுவது கடினமாகிவிடும்.
எடுத்துக்காட்டாக, ஆஸ்டினிலிருந்து வரும் அனைத்து விற்பனையாளர்களிடமும் வினவலை இயக்க விரும்பினால் என்ன செய்வது? முகவரி புலத்திற்குள் நாம் தேட வேண்டும், இது திறமையற்றது மட்டுமல்ல, மோசமான தகவல்களையும் தரும். எல்லாவற்றிற்கும் மேலாக, ஓரிகானின் போர்ட்லேண்டில் ஆஸ்டின் தெருவில் யாராவது வாழ்ந்தால் என்ன ஆகும்?
அட்டவணை எப்படி இருக்க வேண்டும் என்பது இங்கே:
SalesID | முதலில் | கடந்த | முகவரி 1 | முகவரி 2 | நகரம் | நிலை | ஜிப் | தொலைபேசி |
1 | சாம் | எலியட் | 118 முதன்மை செயின்ட் | ஆஸ்டின் | TX | 78720 | 2155555858 | |
2 | ஆலிஸ் | ஸ்மித் | 504 2 வது செயின்ட் | நியூயார்க் | NY | 10022 | 2111221821 | |
3 | ஓஹோ | பாரிஷ் | 428 அகர் செயின்ட் | பொருத்தமாக 304 | ஆஸ்டின் | TX | 78716 | 2155455545 |
இங்கே கவனிக்க வேண்டிய இரண்டு விஷயங்கள் உள்ளன. முதலில், "முகவரி 1" மற்றும் "முகவரி 2" ஆகியவை மீண்டும் மீண்டும் வரும் புலங்களின் தவறுக்கு உட்பட்டதாகத் தோன்றும். இருப்பினும், இந்த விஷயத்தில், அவை அதன் சொந்த அட்டவணையில் செல்ல வேண்டிய தரவுகளின் தொடர்ச்சியான குழுவைக் காட்டிலும் விற்பனையாளருடன் நேரடியாக தொடர்புடைய தனித்தனி தரவைக் குறிக்கின்றன.
மேலும், தவிர்க்க ஒரு போனஸ் தவறு என, தொலைபேசி எண்ணிற்கான வடிவமைப்பு எவ்வாறு அட்டவணையில் இருந்து அகற்றப்பட்டது என்பதைக் கவனியுங்கள். புலங்களின் வடிவமைப்பை முடிந்தவரை சேமிப்பதை நீங்கள் தவிர்க்க வேண்டும். தொலைபேசி எண்களைப் பொறுத்தவரை, மக்கள் தொலைபேசி எண்ணை எழுத பல வழிகள் உள்ளன: 215-555-5858 அல்லது (215) 555-5858. இது விற்பனையாளரை அவர்களின் தொலைபேசி எண்ணால் தேடுவது அல்லது அதே பகுதி குறியீட்டில் விற்பனையாளர்களைத் தேடுவது மிகவும் கடினம்.
சரியான முதன்மை விசையைப் பயன்படுத்தவில்லை
பெரும்பாலான நிகழ்வுகளில், உங்கள் முதன்மை விசைக்கு தானாக அதிகரிக்கும் எண் அல்லது வேறு சில உருவாக்கப்பட்ட எண் அல்லது எண்ணெழுத்து ஆகியவற்றைப் பயன்படுத்த விரும்புவீர்கள். முதன்மை விசையின் உண்மையான தகவல்களைப் பயன்படுத்துவதைத் தவிர்க்க வேண்டும், அது ஒரு நல்ல அடையாளங்காட்டியை உருவாக்கும் என்று தோன்றினாலும் கூட.
எடுத்துக்காட்டாக, நம் ஒவ்வொருவருக்கும் நம்முடைய தனிப்பட்ட சமூக பாதுகாப்பு எண் உள்ளது, எனவே ஒரு பணியாளர் தரவுத்தளத்திற்கான சமூக பாதுகாப்பு எண்ணைப் பயன்படுத்துவது நல்ல யோசனையாகத் தோன்றலாம். ஆனால் அரிதாக இருக்கும்போது, ஒரு சமூக பாதுகாப்பு எண்ணைக் கூட மாற்றுவது சாத்தியம், எங்கள் முதன்மை விசையை மாற்ற நாங்கள் ஒருபோதும் விரும்பவில்லை.
உண்மையான தகவலை ஒரு முக்கிய மதிப்பாகப் பயன்படுத்துவதில் உள்ள சிக்கல் இதுதான். அது மாறலாம்.
பெயரிடும் மாநாட்டைப் பயன்படுத்தவில்லை
நீங்கள் முதலில் உங்கள் தரவுத்தளத்தை வடிவமைக்கத் தொடங்கும்போது இது ஒரு பெரிய விஷயமாகத் தெரியவில்லை, ஆனால் தகவலை மீட்டெடுக்க தரவுத்தளத்திற்கு எதிராக வினவல்களை எழுதுவதற்கு நீங்கள் வந்தவுடன், புல பெயர்களை மனப்பாடம் செய்யும்போது பெயரிடும் மாநாடு இருப்பது உதவும். பெயர்கள் ஒரு அட்டவணையில் FirstName, LastName மற்றும் மற்றொரு அட்டவணையில் முதல்_பெயர், கடைசி_பெயர் என பெயர்கள் சேமிக்கப்பட்டால் அந்த செயல்முறை எவ்வளவு கடினமாக இருக்கும் என்று கற்பனை செய்து பாருங்கள்.
மிகவும் பிரபலமான இரண்டு பெயரிடும் மரபுகள் புலத்தில் உள்ள ஒவ்வொரு வார்த்தையின் முதல் எழுத்தையும் மூலதனமாக்குகின்றன அல்லது அடிக்கோடிட்டுக் கொண்டு சொற்களைப் பிரிக்கின்றன. முதல் வார்த்தையைத் தவிர ஒவ்வொரு வார்த்தையின் முதல் எழுத்தையும் சில டெவலப்பர்கள் மூலதனமாக்குவதையும் நீங்கள் காணலாம்: முதல் பெயர், கடைசி பெயர்.
ஒற்றை அட்டவணை பெயர்கள் அல்லது பன்மை அட்டவணை பெயர்களைப் பயன்படுத்துவதையும் நீங்கள் தீர்மானிக்க விரும்புவீர்கள். இது ஒரு ஆர்டர் அட்டவணை அல்லது ஆர்டர்கள் அட்டவணையா? இது வாடிக்கையாளர் அட்டவணை அல்லது வாடிக்கையாளர் அட்டவணை? மீண்டும், நீங்கள் ஒரு ஆர்டர் அட்டவணை மற்றும் வாடிக்கையாளர் அட்டவணையில் சிக்கிக்கொள்ள விரும்பவில்லை.
நீங்கள் தேர்ந்தெடுக்கும் பெயரிடும் மாநாடு உண்மையில் பெயரிடும் மாநாட்டைத் தேர்ந்தெடுத்து ஒட்டிக்கொள்வதற்கான செயல்முறையைப் போல முக்கியமல்ல.
முறையற்ற அட்டவணைப்படுத்தல்
குறியீட்டு என்பது சரியானதைப் பெறுவதற்கான கடினமான விஷயங்களில் ஒன்றாகும், குறிப்பாக தரவுத்தள வடிவமைப்பில் புதியவர்களுக்கு. அனைத்து முதன்மை விசைகள் மற்றும் வெளிநாட்டு விசைகள் குறியிடப்பட வேண்டும். இவை அனைத்தும் இணைப்பு அட்டவணைகள், எனவே ஒரு குறியீட்டு இல்லாமல், உங்கள் தரவுத்தளத்திலிருந்து மிக மோசமான செயல்திறனைக் காண்பீர்கள்.
ஆனால் பெரும்பாலும் தவறவிடப்படுவது மற்ற துறைகள். இவை "WHERE" புலங்கள். WHERE பிரிவில் ஒரு புலத்தைப் பயன்படுத்துவதன் மூலம் நீங்கள் அடிக்கடி உங்கள் தேடலைக் குறைக்கப் போகிறீர்கள் என்றால், அந்தத் துறையில் ஒரு குறியீட்டைப் போடுவது பற்றி நீங்கள் சிந்திக்க வேண்டும். இருப்பினும், நீங்கள் அட்டவணையை அதிகமாக குறியிட விரும்பவில்லை, இது செயல்திறனை பாதிக்கும்.
எப்படி முடிவு செய்வது? இது தரவுத்தள வடிவமைப்பின் கலையின் ஒரு பகுதியாகும். நீங்கள் ஒரு அட்டவணையில் எத்தனை குறியீடுகளை வைக்க வேண்டும் என்பதற்கு கடினமான வரம்புகள் இல்லை. முதன்மையாக, WHERE பிரிவில் அடிக்கடி பயன்படுத்தப்படும் எந்தவொரு புலத்தையும் நீங்கள் குறியிட விரும்புகிறீர்கள்.