ПредишенСледващото

Това е един прост пример може да изглежда доста типичен база данни.

При проектирането на база данни, първото нещо, което трябва да направите е да се изчисли последователност от действия, необходими, за да се реши проблема. В SQL, това може да изглежда така:

Първият ред разказва СУБД MySQL, ние определяме една маса с име Widget_Table. Следващите шест редове определят области, които маса съдържа вида на данните, включени в него, и който има поле атрибути.

Преди да можете да създадете тази таблица, трябва да създадете празна база данни. В MySQL, това се прави от mysqladmin програма.

Една от многото основните понятия в добро проектиране на релационна база данни е, че никога не трябва да се съхраняват излишни данни. Ако Widget_Table отразено в области Widget_color_id и widget_size_id. Тези две области биха могли да бъдат низове. Вместо това ние да ги насочва към други таблици, които ще съдържат един запис за всяка възможна стойност, която може да съдържа такова поле.

Това се прави по две причини:
  • съгласуваност
  • централизация на сложност

Първата причина - всъщност втората subcase. Тя е много по-лесно да се поддържа съгласуваност в базата данни, ако използвате една маса, за да търсите ценности. Това ще попречи на хората да създават приложения, които използват всичко от "L" за "огромни", за да покаже, че размерът на високо обект.

WIDGET_ID поле - среда (3 байта), определена от размера на цяло число. Той има специален и NOT NULL auto_increment атрибут. NOT NULL е ANSI SQL стандарта и уточнява, че когато някой влезе в джаджа информацията в таблицата, те трябва да даде стойност за това поле. Ако не се дава, MySQL ще назначи областта стойност по подразбиране. Разбира се, ако стойността по подразбиране е била определена, тя ще се използва, когато не е дадено никакво значение. Ако не е уточнено, областта ще получи стойността, въз основа на неговия вид.

MySQL auto_increment специфична характеристика. Ако сложите нула в тази област MySQL, автоматично присвояване на стойност, която е една по-висока от най-високата предишната стойност, предназначени за тази област в таблицата. Това е прост метод за производство на уникални идентификатори за нови джаджи, тъй като те са влезли в таблицата.

Ние също така се определят няколко клавиша. Когато зададете поле auto_increment атрибут, вие също трябва да се посочи тази област, както на първичния ключ. Може да имате само един първичен ключ на масата. Само по едно поле на маса може да бъде auto_increment атрибут.

Ние също така създават вторични индекси използването на думата ключ. Индексирането значително увеличава скоростта на запитвания и асоциации. Индекси могат да включват повече от едно поле. Ако имате индекс, който включва повече от една област, не е нужно да се създаде нов индекс за първото поле в индекса на съединение.

Ние идентифицирахме Widget_Table. Сега ние трябва да се определи пътя за проследяване на поръчката. За тази цел, ние определяме маса PURCHASE_ORDER.

Друга интересна област LAST_ACTION_DATE. Това поле е от тип TIMESTAMP. Полета от този тип, автоматично се обновяват всеки път, когато те се изпълняват на вмъкване или обновяване на. Това показва, когато записът Последна промяна.

Таблица за Purchase_Order_Item:

В Purchase_Order_Item маса съхранява информация за всички елементи от областта на метода на покупката. Тя съдържа информация за това кой, кога, какво и колко нареди.

Сега, нека мислим. Сред клиентите там със сигурност са свободни търговци, които са щастливи да продават стоките си в цените им. Би било хубаво да ги привлече, например, малък skidochku. Но тя не най-малко представлява за това кой е купил стоки за себе си и който е за продан. Отлично, ще поднесе чашата им.

Маси Widget_Color и Widget_Size почти идентична маса Статус. Само имената са променени.

Всичко! Можете да въвеждате данни.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!