Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как правильно организовать БД?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
alsio
Отправлено: 05 Ноября, 2013 - 21:18:11
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Извините за глупый, наверное, вопрос. Я самоучка и только начинаю познавать науку...

Как правильно организовать БД?
Пример:
БД из 1 таблицы 'sotrudniki' с полями: id, name, adress, tel

Все хорошо и просто, пока не потребуется для кого-то ввести 2-3...10 номеров телефона, например. Понятно, что делать для этого 10 полей 'tel' не серьезно.
Как я понимаю, нужна еще одна таблица 'telefony_sotrudnikov' с полями: id, sotrudnik_id, tel, где каждому сотруднику к его ид можно прикрепить кучу телефонов... Так?

Получается, в 1 таблице 'sotrudniki' поле 'tel' уже не нужно. А если таких полей (имеющих свои таблицы) много, то от 1 таблицы ничего и не останется. И поиск по полям это сильно усложняет (для меня Улыбка

И вот я задумался, правильно ли так делать?
 
 Top
T1grOK
Отправлено: 05 Ноября, 2013 - 21:32:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


Помог: 7 раз(а)




Правильно. Правильно мыслите.


-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
biperch
Отправлено: 05 Ноября, 2013 - 21:45:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




правильно
 
 Top
Kandiar
Отправлено: 07 Ноября, 2013 - 18:05:35
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Нояб. 2013  


Помог: 1 раз(а)




Правильно. Это 1 нормальная форма БД. (Их вроде 6, но желательно помнить 3 первые!)
Первая нормальная форма – любое поле любой записи хранит только одно значение.

(Отредактировано автором: 07 Ноября, 2013 - 18:08:29)

 
 Top
Ch_chov
Отправлено: 07 Ноября, 2013 - 18:11:58
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




alsio пишет:
нужна еще одна таблица 'telefony_sotrudnikov' с полями: id, sotrudnik_id, tel

А зачем два поля для ИД?
 
 Top
alsio
Отправлено: 07 Ноября, 2013 - 18:50:23
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Ch_chov пишет:
alsio пишет:
нужна еще одна таблица 'telefony_sotrudnikov' с полями: id, sotrudnik_id, tel

А зачем два поля для ИД?


Ну, первый ид - индивидуальный порядковый номер в этой таблице (автоинкримент). Второй - ид сотрудника из главной таблицы. Вроде так.
(Добавление)
Kandiar пишет:
Правильно. Это 1 нормальная форма БД. (Их вроде 6, но желательно помнить 3 первые!)
Первая нормальная форма – любое поле любой записи хранит только одно значение.


А можно подробнее, где узнать про эти формы. А то я только 1 знаю, получается Хммм...
 
 Top
Kandiar
Отправлено: 07 Ноября, 2013 - 19:02:44
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Нояб. 2013  


Помог: 1 раз(а)




Цитата:
А можно подробнее, где узнать про эти формы. А то я только 1 знаю, получается Хммм...

Смотрите здесь - http://i-novice[dot]net/6-normalnyx-form-bd/
 
 Top
Ch_chov
Отправлено: 07 Ноября, 2013 - 19:14:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




alsio пишет:
Ну, первый ид - индивидуальный порядковый номер

А где он будет использоваться? Присоединять таблицу ведь все равно по второму ИД будете.
 
 Top
alsio
Отправлено: 07 Ноября, 2013 - 19:26:19
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Ch_chov пишет:
А где он будет использоваться? Присоединять таблицу ведь все равно по второму ИД будете.


Да как-то казалось, что обязательно нужен автоинкремент. А так да, нигде использоваться не будет, вроде.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB