د ډیټابیس ډیزاین کې جوړ شوي عمومي غلطۍ

که تاسو د ډیټابیس سره کار کوئ چې په سلګونو ریکارډونه یا میلیونونه اسناد لري، د ډیټابیس مناسب ډیزاین تل مهم وي. نه یوازې دا به د معلوماتو بیا ترلاسه کول خورا اسانه وي، دا به په راتلونکې کې د ډیټابیس پراختیا ته هم آسانه کړي. له بده مرغه، دا په اسانۍ سره یو څو جالونو ته راځي چې په راتلونکی کې شیان ستونزمن کړي.

د ډیټابیس معمول په اړه لیکل شوي ټول کتابونه موجود دي، مګر که تاسو په ساده ډول د دې عمومي غلطی څخه مخنیوی وکړئ، نو تاسو به د ډیټابیس ډیزاین ډیزاین لپاره په سمه لاره وي.

د ډیټابیس غلطی # 1: په جدول کې ځای پرځای کول

د ښه ډیټابیس ډیزاین لپاره د ګوتو اصلي بنسټ دا دی چې د بیاکتنې ډاټا پیژني او د دوی تکرار کالمونه په خپل میز کې وساتي. په جدول کې بیا تکرار د هغو کسانو لپاره معمول دی چې د سپریڈشټونو نړۍ څخه راغلي دي، مګر پداسې حال کې چې سپریڈشیټونه د ډیزاین له لارې فلیټ دي، ډاټابیسیزونه باید اړونده وي. دا د 2D څخه 3D ته ځي.

په نېکه توګه، تکرارونکي ساحې معمولا په اسانۍ سره اسانه دي. یوازې د دې جدول نظر وګورئ:

OrderID محصول 1 محصول 2 محصول 3
1 ټیري بیری جیلی لوبیا
2 جیلی لوبیا

څه پیښیږی کله چې یو حکم څلور تولیدات لری؟ موږ به د دریو محصولاتو څخه د ملاتړ لپاره د میز لپاره بل ساحه اضافه کړو. او که موږ د ارقامو په شاوخوا کې د مراجعینو غوښتنلیک جوړ کړ ترڅو د انټرنېټ ډاټا سره مرسته وکړو، موږ ممکن د نوي محصول ساحه سره بدلون راوړو ته اړتیا ولرو. او موږ څنګه د جیلیبیان سره ټول امرونه په ترتیب کې ترلاسه کړو؟ موږ مجبور یو چې د هر محصول ساحه په جدول کې د SQL بیاناتو سره وکاروئ چې ورته ښکاري: SELECT * له محصولاتو څخه کوم محصول 1 = 'جیلی لوبیا یا محصول 2 =' جیلی لوبیا یا محصول 3 = 'جیلی لوبیا'.

د یو واحد میز لرلو پرځای چې ټول معلومات یوځای شي، موږ باید درې میزونه ولرو چې هر یو د معلوماتو جلا بیلګه لري. په دې مثال کې، موږ غواړو د حکمونو جدول د خپل امر په اړه د معلوماتو سره، د محصولاتو میز زموږ د ټولو محصولاتو او د تولیدونکو ټابلیټونو سره چې د محصول لپاره سپارښتنې سره اړیکه لري.

OrderID CustomerID د امر نیټه ټول
1 7 1/24/17 19.99
2 9 1/25/17 24.99
محصولید محصول شمېره
1 ټیري بیری 1
2 جیلی لوبیا 100
تولیدیډیډیډ محصولید OrderID
101 1 1
102 2 1

خبرتیا ولرئ چې هر میز د ځان ځانګړي ID ساحه لري. دا لومړنی کلیدی دی. موږ میزونو سره د لومړني کلیدي ارزښت په کارولو سره په بل میز کې د بهرنیو کلید په توګه کاروئ. د لومړنیو کیلي او بهرني کیلي په اړه نور ولولئ.

د ډیټابیس غلطی # 2: په میز کې د میز میزان کول

دا یو بل عام غلطی دی، مګر دا تل د بیا تکرار ساحو په څیر نه وي. کله چې د ډیټابیس ډیزاین، تاسو غواړئ ډاډ ترلاسه کړئ چې ټول معلومات په یوه میز کې ځان سره تړاو لري. دا د ماشومانو د لوبې په څیر دی چې څه توپیر لري. که تاسو کیلاین لرئ، یو سوریه، د آوچ او ټیلویژن سایټ، شاید د تلویزیون شاید په بل ځای کې وي.

د ورته سیسټمونو سره، که تاسو د پلور خلکو ته میز ولرئ، په دې جدول کې ټول معلومات باید د هغه پلور پلورونکي شخص سره تړاو ولري. هر اضافي اضافي معلومات چې د پلورنې د شخص لپاره بې ساري نه وي کیدی شي ستاسو په ډاټابیس کې کې بل ځای وي.

خرڅلاو ID لومړی وروستی پته د تلیفون شمیره دفتر د دفتر نیټه
1 سم ايليټ 118 مین سټ، آسټن، ټي (215) 555-5858 آسټن ښارټاون (212) 421-2412
2 الیس سمیټ 504 دویم سړک، نیویارک، نیویارک (211) 122-1821 نیویارک (ختیځ) (211) 855-4541
3 Joe پیش 428 اکیر سټ، آسټن، ټي (215) 545-5545 آسټن ښارټاون (212) 421-2412

پداسي حال کې چې دا میز ښايي داسې ښکاري چې دا د شخصي پلورونکي پورې تړاو لري، دا په اصل کې هغه میز لري چې په میز کې ځای لري. یادونه وکړئ چې څنګه د دفتر او دفتر نیټه د "آسټن ښارټاون" سره تکراروي. څه شی دی که د دفتر تلیفون شمیر بدلون ومومي؟ تاسو باید د معلوماتو د یو واحد برخې بدلولو لپاره د ټولو سټاټونو تازه کولو ته اړتیا ولرئ، کوم هیڅکله هیڅکله ښه ندی. دا ساحې باید خپل میز ته ولېږدول شي.

خرڅلاو ID لومړی وروستی پته د تلیفون شمیره OfficeID
1 سم ايليټ 118 مین سټ، آسټن، ټي (215) 555-5858 1
2 الیس سمیټ 504 دویم سړک، نیویارک، نیویارک (211) 122-1821 2
3 Joe پیش 428 اکیر سټ، آسټن، ټي (215) 545-5545 1
OfficeID دفتر د دفتر نیټه
1 آسټن ښارټاون (212) 421-2412
2 نیویارک (ختیځ) (211) 855-4541

دا ډول ډیزاین تاسو ته د خرڅلاو د شخص په میز کې د پټو سترګو لیدلو پرته د دفتر میز ته اضافي معلومات اضافه کولو ته هم درکوي. وګوره چې څومره کار به په اسانۍ سره د کوڅو پته، ښار، دولت او زپ کوڈ تعقیب وساتئ که دا ټول معلومات د پلور پلورونکي په میز کې وو!

د ډیټابیس غلطی # 3: په یو واحد ساحه کې د معلوماتو دوه یا ډیرو ټوټو اچول

د پلورنې د شخص میز کې د دفتر معلوماتو ډاونلوډ کول د ډیټابیس سره یوازینۍ ستونزه نه وه. د پته ساحه درې معلومات لري: د واټ پته، ښار او دولت. په ډاټابیس کې هر ساحه باید د معلوماتو یو واحد برخه ولري. کله چې تاسو په یوه ساحه کې ډیری ډیزاین معلومات لرئ، نو د دې لپاره ډیټابیس کیدی شي د معلوماتو لپاره ډیټابیس پوښتنه وکړئ.

د بېلګې په توګه، که موږ غواړو د آسټن د ټولو پلورونکو خلکو په اړه پوښتنې ولرو؟ موږ باید د پته په ساحه کې پلټنه وکړو، کوم چې نه یواځې ناکافي، بلکې بد معلومات هم راولی. له هرڅه وروسته، څه پیښیږي که چیرې کوم څوک په استانین سړک کې د پورټلینډ، اوریګون په ښار کې ژوند کوي؟

دلته دی چې جدول باید داسې ښکاري:

خرڅلاو ID لومړی وروستی پته 1 پته 2 ښار دولت زپ تلیفون
1 سم ايليټ 118 Main St آسټن ټیک 78720 2155555858
2 الیس سمیټ 504 دویم سټ نیو یارک نیویارک 10022 2111221821
3 Joe پیش 428 اکیر سټ Apt 304 آسټن ټیک 78716 2155455545

دلته د یادولو لپاره یو څو شیان شتون لري. لومړی، "پته 1" او "پته 2" ښکاري چې د تکرار ساحو تېروتنه لاندې راشي.

په هرصورت، په دې حالت کې دوی د ارقامو جلا کولو لپاره اشاره کوي چې د مستقیم پلور پلورونکي پورې اړه لري، مګر د معلوماتو بیاکتنې ډلې چې پخپله میز کې ځي.

د بیلګې په توګه، د بونس غلطي په توګه، خبرداری ورکړئ چې د تلیفون شمیره د میز څخه له مینځه تللې ده. تاسو باید د هرې ممکنه وخت په وخت کې د فارمونو بڼه وساتوئ. د تلیفون شمیرې په صورت کې، داسې الرې شتون لري چې خلک د تليفون شمیره وليکي: 215-555-5858 یا 215 (555-5858). دا به د خپل تلیفون شمیره د پلور پلورونکي په لټه کې کوي یا په ورته سیمه کې د پلورونکو خلکو لټون وکړي نوره ستونزمنه ده.

د ډیټابیس غلطی # 4: د سم لومړني کیلي کارول نه کارول

په ډیرو مواردو کې، تاسو غواړئ چې د خپل ځان د زیاتې شمیرې شمیرې یا د نورو پیدا شوي شمیره یا ارفانیمیک کارولو لپاره ستاسو د اصلي کیلي لپاره کاروئ. تاسو باید د اصلي کلیدي لپاره د کوم حقیقي معلوماتو کارولو څخه مخنیوی وشي که څه هم داسې ښکاري چې دا به یو ښه پیژندونکی وي.

د مثال په توګه، موږ هر یو د خپل شخصي ټولنیز امنیت شمېره لرو، نو د کارمندانو ډاټابیس لپاره د ټولنیز امنیت شمیره کول ممکن د ښه نظر په څیر غږ پورته کړي. مګر کله ناکله، د بدلون لپاره دا د یو ټولنیز امنیت شمیر لپاره ممکن دی، او موږ هیڅکله هم زموږ د اصلي کلیدی بدلون لپاره نه غواړو.

او دا هغه ستونزه ده چې د اصلي معلوماتو په توګه د اصلي ارزښت په توګه کارول کیږي. دا کولی شي بدلون ومومي.

د ډیټابیس غلطی # 5: د نومونې کنوانسیون کارول نه کارول

دا ممکن ستاسو د ډیټابیس ډیزاین کولو پیل پیل کړي کله چې تاسو د لوی ډیټا په څیر غږ نه کوئ، مګر کله چې تاسو د ډیټابیس په اړه پوښتنو ته ورسیږئ نو معلومات بیرته ترلاسه کړئ، د نومونې کنوانسیون سره به تاسو سره د ساحوي نومونو یادولو سره مرسته وکړي.

یوازې تصور وکړئ چې دا بهیر به وي که نومونه لومړنې نوم په توګه زیرمه شوي وي، په یو میز کې LastName او first_name، last_name په بل میز کې.

د دوو خورا نامتو نومونې کنوانسیونونه په ساحه کې د هر کلمه لومړی لیک لیږدوي یا د کلمې په کارولو سره د کلمې جلا کول دي. تاسو ممکن یو شمیر ډویلګران هم وګورئ چې د لومړۍ کلمې پرته پرته د هر کلی لومړۍ لیک لیکل کیږي: لومړی نوم، وروستی نوم.

تاسو به هم د واحد د میز نومونو یا د میز نومونو په کارولو پریکړه وکړو. ایا دا د امر میز یا د سپارلو میز دی؟ ایا دا د پیرودونکي میز یا د پیرودونکي میز دی؟ بیا بیا، تاسو نه غواړئ د امر د میز او د پیرودونکي میز سره پټې شي.

د نومونې کنوانسیون چې تاسو یې غوره کوئ د حقیقي پروسې په توګه د نومونې کنوانسیون انتخاب او چپولو لپاره مهم ندي.

د ډیټابیس غلطی 6: د نښو نښانې

Indexing د حق ترلاسه کولو لپاره یو ترټولو سخت شیان دي، په ځانګړې توګه د نویو ډیټابیس ډیزاین لپاره. ټول لومړني کیلي او بهرني کیلي باید په نښه شي. دا د لینکس میزونه یوځای سره دي، له دې امله د یوې نښې پرته، تاسو به ستاسو د ډیټابیس څخه ډیر غریب فعالیت وګورئ.

مګر څه چې ډیری وختونه له لاسه ورکړل شوي نور ساحې دي. دا د "WHERE" برخې دي. که تاسو ډیری وخت ستاسو د لټون تنگولو لپاره د WHERE په یوه ساحه کې د ساحې کارولو له لارې، تاسو غواړئ په دې ساحه کې د یوه لیست په اړه فکر وکړئ. په هرصورت، تاسو نه غواړئ چې جدول په ټولیز ډول میز ته اشاره وکړئ، کوم چې کولی شي د فعالیت اغیزمن کړي.

څنګه پریکړه وکړئ؟ دا د ډیټابیس ډیزاین آرټ برخه ده. هیڅ ډول محدودي محدوديتونه شتون نلري چې تاسو په میز کې څومره ډیری اشارې لرئ. په ابتدايي ډول، تاسو غواړئ هغه ساحه چې په ډیری وخت د WHERE په مقاله کې کارول کیږي انعکاس کړئ. د مناسبو معلوماتو په اړه نور معلومات ولیکئ.