При развоју софтверског пројекта један од најважнијих, темељних и суштинских аспеката је правилно структурирана шема базе података. То је еквивалентно приликом градње куће која вам је потребна како бисте били сигурни да су темељи правилно постављени, иначе су шансе за изградњу квалитетне куће драстично смањене.

Изненађујуће лакше него што би неко помислио, научимо разне аспекте који се користе за писање добро архитектонске шеме базе података.

СТВАРАЊЕ ТАБЕЛЕ Синтакса

За почетак отворите свој омиљени текст едитор. Стварање шеме базе података не захтева ништа више од обичне текстуалне датотеке. База података састоји се од више табела, од којих се свака састоји од ступаца, а синтакса ЦРЕАТЕ ТАБЛЕ се користи за креирање једне табеле. Ево основног примера:


СТВАРИ кориснике (
ид ИНТ НИЈЕ НУЛЛ,
ис_ацтиве ТИНИ ИНТ НОТ НУЛЛ,
пуно_име ВАР ЦХАР (100) НИЈЕ НУЛЛ,
е-маил ВАРЦХАР (100) НИЈЕ НУЛЛ
);

Као што видите, ово ће створити табелу базе података са именом корисника која се састоји од четири колоне. Ово би требао бити прилично директан СКЛ израз који почиње са

instagram viewer
СТВАРИ ТАБЕЛУ, након чега следи име табела базе података, а затим у загради ступци табеле одвојени зарезом.

Користите тачне типове колона

Као што је приказано горе, ступци од којих ће се табела састојати одвојени су зарезима. Свака дефиниција колоне састоји се од три иста дела:

ТИП ЦОЛ_НАМЕ [ОПЦИЈЕ]

Име колоне, затим тип колоне, затим било који опционални параметар. Необавезне параметре ћемо ући касније, али концентришући се на тип колоне, у наставку су наведени најчешће коришћени типови колона:

За све намере, горњи типови колона су све што вам треба за писање добро конструисаних шема базе података МиСКЛ.

Дефинишите опције колоне

Приликом дефинисања колона постоје и разне опције које можете навести. Испод је још један пример СТВАРИ ТАБЕЛУ изјава:


СТВАРИ кориснике (
ид ИНТ НОТ НУЛЛ ПРИМАРНИ КЉУЧ АУТО_ИНЦРЕМЕНТ,
корисничко име ВАРЦХАР (100) НИЈЕ НУЛЛ УНИКУЕ,
статус ЕНУМ ('активан', 'неактиван') НОТ НУЛЛ ДЕФАУЛТ 'активан',
салдо ДЕЦИМАЛНО (8,2) НИЈЕ НУЛТА ЗАДАТАК 0,
датум_рођења ДАТЕТИМЕ,
цреатед_ат ТИМЕСТАМП НОТ НУЛЛ ДЕФАУЛТ ЦУРРЕНТ_ТИМЕСТАМП
);

Горе наведено може изгледати застрашујуће, али не брините, сасвим је једноставно. Сложено, ево шта се дешава у горњој изјави:

  • Увек треба да користите НОТ НУЛЛ на свим могућим колонама како бисте помогли у брзини и перформансама табеле. Ово једноставно одређује да колона не може остати празна / нула када се уметне ред.
  • Увек покушајте да величина колоне буде што је могуће реалнија, јер то помаже у побољшању брзине и перформанси.
  • Тхе ид колона је цео број, уједно је и примарни кључ табеле, што значи да је јединствен, и увећаваће се за један сваки пут када се запис убаци. Ово би обично требало користити у свим табелама које креирате, тако да можете лако референцирати било који појединачни ред у табели.
  • Тхе статус колона је ЕНУМ и мора имати вредност „активан“ или „неактиван“. Ако није наведена вредност, нови ред започиње статусом "активан".
  • Тхе равнотежа ступац почиње на 0 за сваки нови ред и представља износ који је форматиран са две две децимале.
  • Тхе Датум рођења ступац је једноставно ДАТУМ, али такође дозвољава и нулл вредност, јер датум рођења можда неће бити познат по креирању.
  • Последње, Креирано колона је ТИМЕСТАМП и подразумевано подразумева тренутно време када је ред уметнут.

Горе наведено је пример лепо структуриране табеле базе података и требало би да се користи као пример за даље.

Једна од највећих предности коришћења релационих база података као што је миСКЛ је његова одлична подршка за ограничења страног кључа и каскадно. То је када повежете две табеле заједно колоном, формирајући родитељски однос детета, па када се родитељски ред избрише, неопходни подређени редови се такође аутоматски бришу.

Ево примера:


СТВАРИ кориснике (
ид ИНТ НОТ НУЛЛ ПРИМАРНИ КЉУЧ АУТО_ИНЦРЕМЕНТ,
корисничко име ВАРЦХАР (100) НИЈЕ НУЛЛ УНИКУЕ,
пуно име ВАРЦХАР (100) НОТ НУЛЛ,
цреатед_ат ТИМЕСТАМП НОТ НУЛЛ ДЕФАУЛТ ЦУРРЕНТ_ТИМЕСТАМП
) мотор = ИнноДБ;
НАПРАВИ НАРУЏБЕ (
ид ИНТ НОТ НУЛЛ ПРИМАРНИ КЉУЧ АУТО_ИНЦРЕМЕНТ,
усерид ИНТ НИЈЕ НУЛЛ,
износ ДЕЦИМАЛАН (8,2) НЕ НУЛЛ,
продуцт_наме ВАРЦХАР (200) НИЈЕ НУЛЛ,
СТРАНИ КЉУЧ (усерид) РЕФЕРЕНЦЕ корисника (ид) НА БРИСАЊЕ КАСКАДЕ
) мотор = ИнноДБ;

Као последњи ред приметићете клаузулу ФОРЕИГН КЕИ. Овај ред једноставно наводи да ова табела садржи подређене редове повезане са ИД корисник у њихов родитељски ред, а то је ид колона корисника сто. Шта то значи, сваки пут када се неки ред избрише из корисника табела, миСКЛ ће аутоматски избрисати све одговарајуће редове из наредбе табела која помаже у обезбеђивању структурног интегритета у вашој бази података.

Такође обратите пажњу на мотор = ИнноДБ на крају горње изјаве. Иако је ИнноДБ сада подразумевани тип табеле МиСКЛ, то није било увек, па би ово требало додати само да бисмо били сигурни, јер каскадно функционише само са ИнноДБ табелама.

Дизајнирајте са поверењем

Сада сте на добром путу да креирате солидне, добро структуриране схеме базе података МиСКЛ. Користећи горње знање, сада можете писати добро организоване шеме које пружају и перформансе и структурни интегритет.

Са постављеном шемом, уверите се да знате како се користи са њима битне СКЛ наредбе.

Емаил
Како истовремено извршити упит за више табела базе података помоћу СКЛ придруживања

Научите како да користите СКЛ придруживања за поједностављивање упита, уштеду времена и стварање осећаја да сте СКЛ напредни корисник.

Повезане теме
  • Неодређено
О аутору
Матт Дизак (Објављено 18 чланака)Више од Матта Дизака

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!

Још један корак…!

Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.

.