Тема: Звязки таблиць в mysqli

Всім привіт, вивчаю php і вперся в проблему,не розумію mysql,а саме звязки таблиць,хотілось би відео приклад, створення таблиць а також про нормалізацію таблиць, більше всього цікавить явний приклад створення декількох таблиць з іншим таблицями через звязок , пошагово.

Дякую за допомогу.

2

Re: Звязки таблиць в mysqli

Якщо не розумієш mysql то його варто вивчати. В чому проблема переглянути хоч одне відео на youtube - https://www.youtube.com/watch?v=0RRBrmC7kaE ?

3 Востаннє редагувалося frz (05.02.2023 22:58:47)

Re: Звязки таблиць в mysqli

Заявлену в першому дописі тему можна висвітлити декількома абзацами (на базовому рівні).

Візьмемо вимірювати якусь кількісну подію за кожен день тижня. Маємо таблицю events з колонками:

номер дня тижня, назва дня тижня, кількість подій за цей день тижня

Це ненормалізована таблиця, бо назва дня тижня повторюватиметься і це текст - так робити не є грамотно, але часто таке все одно трапляється, наприклад якщо це робив аналітик а не DBA. При цьому аналітик міг би й не включати колонку з номером тижня, це я забігаю трохи наперед.

назва дня тижня, кількість подій за цей день тижня

Ось колонки в нашій таблиці, яка створена аналітиком. Тепер дивимося як натомість зробити правильно.

В даному випадку таблиця events повинна містити колонки:

номер дня тижня, кількість подій за цей день тижня

Для того щоб кінцевий результат був юзер-френдлі, назва дня тижня нам все одно потрібна, але для цього створюємо окрему таблицю яку умовно назвемо "словником" week - це буде пояснення, що означає кожен номер тижня. Це здається трохи безґлуздим, але в різних країнах номери тижнів означають інше, наприклад десь перший день це неділя а в інших країнах перший день це понеділок.

номер дня тижня, назва дня тижня

Тепер в таблиці week номер дня тижня буде primary key, унікальним значенням. А в таблиці events номер дня тижня буде пов'язаним за допомогою foreign key із колонкою номер дня тижня в "словнику" week. Таким чином після створення згаданого foreign key в таблицю events неможливо буде внести запис де номер тижня = 8, оскільки такого запису не існує в "словнику" week.

----

А є ще країни де перший день це субота - ось табличка англійською
http://chartsbin.com/view/41671