LibreOffice-Suite-Base/C4/Database-Design-Primary-Key-and-Relationships/Oriya

From Script | Spoken-Tutorial
Revision as of 12:22, 1 August 2017 by Pradeep (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time Narration
00:00 ବନ୍ଧୁଗଣ, LibreOffice Base ଉପରେ ସ୍ପୋକନ୍ ଟ୍ୟୁଟୋରିଆଲକୁ ସ୍ଵାଗତ
00:04 ଏହି ଟ୍ୟୁଟୋରିଆଲ୍ ପୂର୍ବ Database Design ଉପରେ ଥିବା ଟ୍ୟୁଟୋରିଆଲର ନିରନ୍ତରତା ଅଟେ
00:10 ଏବଂ ଏଠାରେ ଆମେ ନିମ୍ନଲିଖିତ ବିଷୟଗୁଡିକୁ ଶିଖିବା:
00:13 ଇନଫର୍ମେଶନ୍ ଆଇଟମଗୁଡିକୁ columnରେ ରୂପାନ୍ତର କରିବା
00:17 ପ୍ରାଇମେରୀ କୀଗୁଡିକୁ ନିର୍ଦ୍ଦିଷ୍ଟ କରିବା
00:20 table relationshipଗୁଡିକୁ ସେଟ ଅପ୍ କରିବା
00:23 ପୂର୍ବ ଟ୍ୟୁଟୋରିଆଲରେ, ଗୋଟିଏ ସରଳ Library application ପାଇଁ ଡେଟାବେସ୍ ଡିଜାଇନ୍ ପ୍ରକ୍ରିୟା ଆରମ୍ଭ କରିଥିଲେ
00:30 ପ୍ରଥମେ ଆମେ Library databaseର ନିର୍ମାଣର ଉଦ୍ଦେଶ୍ୟକୁ ନିର୍ଦ୍ଧରଣ କଲେ
00:36 ତା’ପରେ ଲାଇବ୍ରେରୀ ସମ୍ବନ୍ଧିତ ସୁଚନାଗୁଡିକୁ ପ୍ରାପ୍ତ କରିବା ଓ ସେଗୁଡିକୁ ସଂଗଠିତ କରିବା ପ୍ରକ୍ରିୟାକୁ ଜାରିରଖିଲେ ଏବଂ
00:44 ସୁଚନାଗୁଡିକୁ Tables ମଧ୍ୟରେ ବିଭକ୍ତ କରିଦେଲେ
00:49 ତେଣୁ, ଲାଇବ୍ରେରୀ ଡେଟାବେସରେ ଚାରୋଟି ଟେବୁଲକୁ ଚିହ୍ନଟ କରିଥିଲେ, ସେଗୁଡିକ ହେଲେ: Books, Authors, Publications ଓ Members
01:00 ପରବର୍ତ୍ତୀ ସୋପାନକୁ ଯିବା ଯେଉଁଠି ଇନଫର୍ମେଶନ୍ ଆଇଟମଗୁଡିକୁ columnsରେ ପରିବର୍ତ୍ତନ କରିବା
01:07 ଏଠାରେ, ପ୍ରତ୍ୟେକ tableରେ କେଉଁ ସୁଚନାକୁ ଷ୍ଟୋର୍ କରିବାକୁ ଚାହାଁନ୍ତି, ତାହା ନିଶ୍ଚିତ କରନ୍ତୁ
01:13 ପ୍ରତ୍ୟେକ ଇନଫର୍ମେଶନ୍ ଆଇଟମ ଯାହା ପୂର୍ବେ ଚିହ୍ନଟ କରାଯାଇଥିଲା, ତାହା ଗୋଟିଏ fieldରେ ରୂପାନ୍ତର ହୋଇଯାଇଛି ଏବଂ ଟେବୁଲ ମଧ୍ୟରେ ଗୋଟିଏ କଲମ୍ ଭାବେ ପ୍ରଦର୍ଶିତ ହୋଇଛି
01:23 ସ୍କ୍ରୀନ୍ ଉପରେ ପ୍ରଦର୍ଶିତ ଇମେଜ୍ ଭଳି, Books ଟେବୁଲର ପାଞ୍ଚୋଟି column ଅଛି ଯାହାକୁ fields ମଧ୍ୟ କୁହାଯାଏ
01:31 ତେଣୁ, ଏଠାରେ ପ୍ରତ୍ୟେକ ରୋ’ କିମ୍ବା record ଏହାର କଲମଗୁଡିକରେ କେବଳ ଗୋଟିଏ ବହିର ସୁଚନାକୁ ଧାରଣ କରିଥାନ୍ତି
01:40 ସେହିପରି, Authors ଟେବୁଲ ମଧ୍ୟରେ ଥିବା ପ୍ରତ୍ୟେକ ରେକର୍ଡ କେବଳ ଗୋଟିଏ ଅଥର୍ ବିଷୟରେ ସୁଚନାକୁ ଧାରଣ କରିଥାଏ
01:49 ଏବଂ Publishers ଟେବୁଲ ମଧ୍ୟରେ ଥିବା ପ୍ରତ୍ୟେକ ରେକର୍ଡ କେବଳ ଗୋଟିଏ ପବ୍ଲିଶରର ସୁଚନାକୁ ଧାରଣ କରିଥାଏ
01:58 ବର୍ତ୍ତମାନ, ଆବଶ୍ୟକତାଗୁଡିକୁ ଆଧାର କରି ଆଗକୁ କଲମଗୁଡିକୁ ରିଫାଇନ୍ କରିପାରିବେ
02:04 ଉଦାହରଣସ୍ଵରୂପ, Author nameକୁ ଭାଙ୍ଗି First Name ଓ Last Nameରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ ଯାହାଦ୍ଵାରା ଏହି କଲମଗୁଡିକ ସାହାଯ୍ୟରେ ସର୍ଚ କିମ୍ବା ସର୍ଟ କରିପାରିବେ
02:17 ଏବଂ ଟେବୁଲଗୁଡିକରେ ଗଣନାର ପରିଣାମକୁ ସ୍ଵତନ୍ତ୍ର କଲମରେ ଷ୍ଟୋର୍ କରିବାକୁ ପଡିବ ନାହିଁ
02:24 କାରଣ ଯେତେବେଳେ ପରିଣାମ ଦେଖିବାକୁ ଚାହିଁବେ ସେତେବେଳେ Base ସଙ୍ଗେସଙ୍ଗେ ଗଣନା କାର୍ଯ୍ୟ କରିପାରିବ
02:31 ବର୍ତ୍ତମାନ ଟେବୁଲ ଓ କଲମଗୁଡିକ ଉପରେ କିଛି ବି ସଂଦେହ ନାହିଁ, ଚାଲନ୍ତୁ ତା’ପରେ primary keyଗୁଡିକ କିପରି ନିର୍ଦ୍ଦିଷ୍ଟ କରାଯାଏ, ଦେଖିବା
02:41 primary key ଗୋଟିଏ କ’ଣ?
02:44 ପ୍ରତ୍ୟେକ table ଗୋଟିଏ କଲମ୍ କିମ୍ବା ଗୋଟିଏ କଲମର ସେଟକୁ ସମ୍ପୃକ୍ତ କରିବା ଆବଶ୍ୟକ ଯାହା ଟେବୁଲରେ ଷ୍ଟୋର୍ ହୋଇଥିବା ପ୍ରତ୍ୟେକ ରୋ’କୁ ସ୍ଵତନ୍ତ୍ର ଭାବେ ଚିହ୍ନଟ କରିଥାଏ
02:54 ଏହି କଲମ୍ ବା କଲମଗୁଡିକର ସେଟ୍ ଟେବୁଲର primary key ଅଟନ୍ତି
03:00 ଗୋଟିଏ Book Id କିମ୍ବା Author Id ଭଳି ଏହା ଅନେକ ସମୟରେ ଏକ ୟୁନିକ୍ ଆଇଡେଣ୍ଟିଫିକେଶନ୍ ନମ୍ବର୍ ଅଟେ
03:08 ଅନେକ ଟେବୁଲରୁ ସଂଗୃହିତ ଲଜିକ୍ ସମ୍ପର୍କିତ ଡେଟାକୁ ଶୀଘ୍ର ଏକତ୍ର କରିବା ଏବଂ ଏକ ସଙ୍ଗେ ଡେଟାକୁ ସଂଗ୍ରହ କରିବା ପାଇଁ, primary key ଫିଲ୍ଡଗୁଡିକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ
03:21 ଏବଂ ପ୍ରାଇମେରୀ କୀରେ ନକଲୀ ଭେଲ୍ୟୂଗୁଡିକ ରହିପାରିବେ ନାହିଁ
03:26 ଉଦାହରଣସ୍ଵରୂପ, ଲୋକଙ୍କର ନାମଗୁଡିକୁ ପ୍ରାଇମେରି କୀ ଭାବେ ବ୍ୟବହାର କରିପାରିବେ ନାହିଁ କାରଣ ନାମଗୁଡିକ ୟୁନିକ୍ ନୁହଁନ୍ତି
03:34 ସମାନ ଟେବୁଲରେ, ସମାନ ନାମରେ ଦୁଇ ଜଣ ଲୋକ ରହିପାରନ୍ତି
03:40 ତା’ପରେ, ଗୋଟିଏ primary keyର ନିଶ୍ଚିତରୂପେ ଏକ ଭାଲ୍ୟୂ ରହିବା ଆବଶ୍ୟକ
03:45 ଯଦି ଏହା ଶୁନ୍ୟ କିମ୍ବା Null ଥାଏ ତେବେ ଏହା ଗୋଟିଏ primary key ଭାବେ ଗ୍ରହଣ କରାଯିବ ନାହିଁ
03:52 ଏବଂ କଲମ୍ ଡେଟା ଟାଇପକୁ AutoNumberରେ ରଖି ସର୍ବଦା ଗୋଟିଏ ଭାଲ୍ୟୂ ରଖିବା ପାଇଁ ପ୍ରାଇମେରୀ କୀକୁ ବାଧ୍ୟ କରିପାରିବେ, ଯାହାକୁ Base ଅଟୋମାଟିକଲୀ ଜେନେରେଟ୍ କରିବ,
04:09 ସ୍କ୍ରୀନ୍ ଉପରେ ପ୍ରଦର୍ଶିତ ଇମେଜ୍ ଭଳି, ନିମ୍ନାନୁସାରେ ଟେବୁଲଗୁଡିକର ପ୍ରାଇମେରୀ କୀଗୁଡିକୁ ସେଟ୍ ଅପ୍ କରିପାରିବେ:
04:20 Books ଟେବୁଲ୍ ପାଇଁ BookId,
04:24 Authors ଟେବୁଲ ପାଇଁ AuthorId,
04:28 Publishers ଟେବୁଲ ପାଇଁ PublishersId
04:33 ସେହିପରି, ଯଦିଓ ଏଠାରେ ପ୍ରଦର୍ଶିତ ହୋଇନାହିଁ, Members ଟେବୁଲ ପାଇଁ ପ୍ରାଇମେରୀ କୀ MemberId ହେବ
04:42 ଶେଷରେ, ଟେବୁଲ ମଧ୍ୟରେ ପ୍ରାଇମେରୀ କୀଗୁଡିକୁ ସେଟ୍ କରିବା ଦ୍ଵାରା, Entity Integrity ସୁରକ୍ଷିତ ରହେ
04:52 Entity Integrity ସୁନିଶ୍ଚିତ କରେ ଯେ ଏଠାରେ ଟେବୁଲ ମଧ୍ୟରେ କୌଣସି ନକଲୀ ରେକର୍ଡ ନାହିଁ
05:00 ଏହା ମଧ୍ୟ ସୁନିଶ୍ଚିତ କରେ ଯେ field, ଯାହା ଟେବୁଲ ମଧ୍ୟରେ ପ୍ରତ୍ୟେକ ରେକର୍ଡକୁ ଚିହ୍ନଟ କରିଥାଏ, ସ୍ଵତନ୍ତ୍ର ଓ କେବେ ବି Null ହେବେ ନାହିଁ
05:10 ବର୍ତ୍ତମାନ ତୋନୋଟି ଟେବୁଲରେ ପ୍ରାଇମେରୀ କୀଗୁଡିକ ଅଛନ୍ତି, relationshipଗୁଡିକୁ ସେଟ୍ ଅପ୍ କରି ସେମାନଙ୍କୁ ଏକତ୍ର କରିପାରିବେ
05:20 ଯେହେତୁ Base ଏହି କନସେପ୍ଟକୁ ସପୋର୍ଟ କରେ ତେଣୁ Baseକୁ ଗୋଟିଏ Relational Database Management System କୁହାଯାଏ, ସଂକ୍ଷିପ୍ତରେ RDBMS
05:32 ଏଠାରେ କିଛି ଅଳ୍ପ ସଂଖ୍ୟକ relationship ଅଛି ଏବଂ ବର୍ତ୍ତମାନ ସେଗୁଡିକୁ ଦେଖିବା
05:37 ପ୍ରଥମେ ଗୋଟିଏ One-to-Many relationship କ’ଣ ଚାଲନ୍ତୁ ଦେଖିବା
05:43 ବର୍ତ୍ତମାନ ଇମେଜରେ ପ୍ରଦର୍ଶିତ Books ଓ Authors ଟେବଲଗୁଡିକୁ ଚାଲନ୍ତୁ ଦେଖିବା
05:49 ଗୋଟିଏ ବହି କେବଳ ଜଣେ ଅଥରଙ୍କ ଦ୍ଵାରା ଲେଖାଯାଇଛି
05:55 ବର୍ତ୍ତମାନ, ଏପରି ସ୍ଥଳେ ଯେଉଁଠି ଗୋଟିଏ ବହିର ଦୁଇ କିମ୍ବା ଅଧିକ କୋ-ଅଥର୍ ଥା’ନ୍ତି
06:02 କିନ୍ତୁ ଉଦାହରଣକୁ ଗୋଟିଏ ବହି ପାଇଁ ଗୋଟିଏ ଅଥରରେ ସୀମିତ କରନ୍ତୁ
06:10 ଉଦାହରଣ ସହ ଆଗକୁ ବଢିବା, ଗୋଟିଏ ଅଥର୍ ଅନେକ ବହି ଲେଖିଥାଇପାରନ୍ତି
06:17 ତେଣୁ, Authors ଟେବଲରେ ରିପ୍ରେଜେଣ୍ଟ ହୋଇଥିବା ଗୋଟିଏ ଅଥର୍ ପାଇଁ, Books ଟେବଲରେ ରିପ୍ରେଜେଣ୍ଟ ଥିବା ଅନେକ ବହି ସେହି ଅଥରଙ୍କ ଦ୍ଵାରା ଲିଖିତ ହୋଇଥିବ
06:28 ତେଣୁ ଏହା ଗୋଟିଏ one-to-many relationship ଅଟେ
06:32 ଏବଂ ଏହାକୁ ଏହି Library databaseରେ ରିପ୍ରେଜେଣ୍ଟ କରିପାରିବେ
06:36 Author Id ଯାହା Authors ଟେବଲର ପ୍ରାଇମେରୀ କୀ ଅଟେ ଏବଂ ଏହାକୁ Books ଟେବଲରେ ଯୋଗ କରିବା ସହଜ ଅଟେ
06:46 ତେଣୁ, Books ଟେବୁଲରେ ଥିବା Author Idକୁ Foreign key କୁହାଯାଏ
06:53 ସେହିପରି, Publisher Id ଯାହା Publishers ଟେବଲରେ ପ୍ରାଇମେରୀ କୀ ଅଟେ, ଏହାକୁ Books ଟେବଲରେ ଯୋଗ କରିବା ଦ୍ଵାରା, ସେଠାରେ ଏହା foreign keyରେ ପରିବର୍ତ୍ତନ ହୋଇଯାଏ
07:06 ତେଣୁ, ଗୋଟିଏ କଲମକୁ କିମ୍ବା ଗୋଟିଏ କଲମର ସେଟକୁ ସେଆର୍ କରିବା ଦ୍ଵାରା ଡେଟାବେସରେ one-to-many relationshipକୁ ରିପ୍ରେଜେଣ୍ଟ କରିପାରିବେ
07:17 ଏବଂ Foreign keyଗୁଡିକୁ ବ୍ୟବହାର କରି table relationshipଗୁଡିକୁ ସେଟ ଅପ୍ କରିପାରିବା
07:23 ତେଣୁ, relationshipକୁ ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ଟେବଲର primary key ଦ୍ଵିତୀୟ ଟେବଲର ଗୋଟିଏ foreign key ଭାବେ ରିପ୍ରେଜେଣ୍ଟ ହେବ
07:34 ତେଣୁ Referential integrityକୁ କାର୍ଯ୍ୟକାରୀ କରିପାରିବେ
07:39 ଅର୍ଥାତ୍, ଗୋଟିଏ ଟେବଲର ପ୍ରତ୍ୟେକ foreign କୀ ଭାଲ୍ୟୂ ସହିତ ମେଳ ହେଉଥିବା ଗୋଟିଏ primary କୀ ଭେଲ୍ୟୂ ସମ୍ପର୍କିତ ଟେବଲରେ ପ୍ରାପ୍ତ କରିପାରିବେ
07:50 ତା’ପରେ, ଚାଲନ୍ତୁ Many-to-Many relationship କ’ଣ ଦେଖିବା
07:56 ବର୍ତ୍ତମାନ table designକୁ ଫେରିଆସନ୍ତୁ
07:59 ଗୋଟିଏ ବହି ଅନେକ ଲାଇବ୍ରେରୀ ମେମ୍ବରମାନଙ୍କୁ ଇସ୍ୟୁ କରାଯାଇପାରେ(ଅନେକ କପୀ ଉପଲବ୍ଧ ଥିବାର ଅନୁମାନ କରନ୍ତୁ)
08:09 ସେହିପରି, ଗୋଟିଏ ମେମ୍ବର୍ ଅନେକ ବହି ମଧ୍ୟ ନେଇପାରିବେ(ନିଶ୍ଚିତରୂପେ, ବହିଗୁଡିକ ଉପଲବ୍ଧଥିବାର ଅନୁମାନ କରନ୍ତୁ)
08:17 ତେଣୁ, ଅନେକଗୁଡିଏ ବହି ଅନେକ ସଂଖ୍ୟକ ମେମ୍ବରମାନଙ୍କୁ ଇସ୍ୟୁ ହୋଇଥିବାର ଗୋଟିଏ ଉଦାହରଣ ଏଠାରେ ଅଛି
08:25 ଯାହା ଗୋଟିଏ Many-to-many relationshipକୁ ରିପ୍ରେଜେଣ୍ଟ କରେ
08:29 ତେଣୁ, many-to-many relationshipକୁ ଗୋଟିଏ ତୃତୀୟ ଟେବଲ BooksIssuedକୁ ସୃଷ୍ଟି କରି,
08:35 ଯାହାକୁ ଗୋଟିଏ Junction tableମଧ୍ୟ କୁହାଯାଏ, ଡେଟାବେସରେ ରିପ୍ରେଜେଣ୍ଟ କରନ୍ତୁ
08:45 ଏବଂ ଏଠାରେ, Books ଓ Members ଟେବଲ ମଧ୍ୟରୁ ପ୍ରାଇମେରୀ କୀଗୁଡିକୁ BooksIssued ଟେବଲ ମଧ୍ୟରେ ପ୍ରବେଶ କରାନ୍ତୁ
08:57 ପରିଣାମସ୍ଵରୂପ, BooksIssued ଟେବଲ ଗୋଟିଏ ମେମ୍ବରକୁ ଇସ୍ୟୁ ହୋଇଥିବା ପ୍ରତ୍ୟେକ ବହିକୁ ରେକର୍ଡ କରିବ
09:05 ତେଣୁ, ଗୋଟିଏ ତୃତୀୟ ଜଙ୍କଶନ୍ ଟେବଲର ସୃଷ୍ଟି କରି many-to-many relationshipକୁ ରିପ୍ରେଜେଣ୍ଟ କରନ୍ତୁ
09:13 ଏବଂ ଶେଷରେ One-to-one relationship
09:18 ବେଳେବେଳେ, କିଛି ଆଟ୍ରିବ୍ୟୁଟ୍ କିମ୍ବ କଲମଗୁଡିକ ନିର୍ଦ୍ଦିଷ୍ଟ ଡେଟା ପାଇଁ ଉଦ୍ଦିଷ୍ଟ ଅଟେ ଏବଂ କ୍ଵଚିତ୍ ଡେଟା ପୁରଣ କରାଯାଏ
09:30 ଗୋଟିଏ ଅବସ୍ଥାକୁ ଦେଖନ୍ତୁ ଯେଉଁଠି କେବଳ ଜଣେମାତ୍ର ଅଥରଙ୍କର ୱେବସାଇଟ୍ ଆଡ୍ରେସ୍ ଅଛି ଏବଂ ଅନ୍ୟ କାହାର ନାହିଁ
09:38 ଏବଂ Authors ଟେବଲ ମଧ୍ୟରେ ନ୍ୟୁ ୱେବସାଇଟ୍ କଲମ ଅନେକ ମାତ୍ରାରେ ଖାଲି ରହିବ ଯାହା ଡିସ୍କରେ ସ୍ଥାନ ନେଇଥାଏ
09:47 ତେଣୁ, ଏହି କଲମକୁ ଗୋଟିଏ ନୁତନ ସପ୍ଲିମେଣ୍ଟାଲ୍ ଟେବଲ ମଧ୍ୟକୁ ସ୍ଥାନାନ୍ତର କରନ୍ତୁ ଯାହାର ପ୍ରାଇମେରୀ କୀ ସମାନ Author Id ଥିବ
09:58 ସପ୍ଲିମେଣ୍ଟାଲ୍ ଟେବଲର ପ୍ରତ୍ୟେକ ରେକର୍ଡ ମୁଖ୍ୟ ଟେବଲର ରେକର୍ଡ ସହିତ ନିର୍ଭୁଲ ଭାବେ ଅନୁରୂପ ହେବ
10:06 ଯାହା ଗୋଟିଏ One-to-one relationshipକୁ ରିପ୍ରେଜେଣ୍ଟ କରେ
10:10 ତେଣୁ ଏଠାରେ, ଡେଟାବେସରେ relationshipକୁ ସେଟ ଅପ୍ କରିବା ଶିଖିଲେ
10:15 ଏହା ଆମକୁ, Database Design in LibreOfficeର ଦ୍ଵିତୀୟ ଭାଗ ଉପରେ ଥିବା ଏହି ଟ୍ୟୂଟୋରିଆଲର ସମାପ୍ତିକୁ ଆଣେ
10:23 ସଂକ୍ଷିପ୍ତରେ ଆମେ ଡେଟାବେସ୍ ଡିଜାଇନ୍ ଉପରେ ନିମ୍ନଲିଖିତ ଶିଖିଲେ:
10:28 ଇନଫର୍ମେଶନ୍ ଆଇଟମଗୁଡିକୁ କଲମରେ ରୂପାନ୍ତର କରିବା
10:32 ପ୍ରାଇମେରୀ କୀଗୁଡିକୁ ନିର୍ଦ୍ଦିଷ୍ଟ କରିବା
10:34 ଟେବଲ ରିଲେଶନଶିପଗୁଡିକୁ ସେଟ ଅପ୍ କରିବା
10:38 ସ୍ପୋକନ୍ ଟ୍ୟୁଟୋରିଆଲ ପ୍ରୋଜେକ୍ଟ, ଟକ୍ ଟୁ ଏ ଟିଚର୍ ପ୍ରୋଜେକ୍ଟର ଏକ ଅଂଶ, ଏହା ଭାରତ ସରକାରଙ୍କ MHRDର ICT ମାଧ୍ୟମରେ ରାଷ୍ଟ୍ରୀୟ ସାକ୍ଷରତା ମିଶନ୍ ଦ୍ୱାରା ସମର୍ଥିତ
10:48 ଏହି ପ୍ରୋଜେକ୍ଟ Spoken Tutorial.org http://spoken-tutorial.org ଦ୍ଵାରା ସମର୍ଥିତ
10:54 ଏହା ଉପରେ ଅଧିକ ବିବରଣୀ (spoken-tutorial.org/NMEICT-Intro)ରେ ଉପଲବ୍ଧ
10:58 ଆଇଆଇଟି ବମ୍ୱେ ତରଫରୁ, ପ୍ରଦୀପ ମହାପାତ୍ରଙ୍କ ସହ ମୁଁ ପ୍ରଭାସ ତ୍ରିପାଠୀ ଆପଣଙ୍କଠାରୁ ବିଦାୟ ନେଉଛି. ଆମ ସହିତ ଜଡ଼ିତ ହୋଇଥିବାରୁ ଧନ୍ୟବାଦ

Contributors and Content Editors

Pradeep