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
Форумы портала PHP.SU :: Версия для печати :: Как правильно организовать БД?
Форумы портала PHP.SU » » Вопросы новичков » Как правильно организовать БД?

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

1. alsio - 05 Ноября, 2013 - 21:18:11 - перейти к сообщению
Извините за глупый, наверное, вопрос. Я самоучка и только начинаю познавать науку...

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

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

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

И вот я задумался, правильно ли так делать?
2. T1grOK - 05 Ноября, 2013 - 21:32:13 - перейти к сообщению
Правильно. Правильно мыслите.
3. biperch - 05 Ноября, 2013 - 21:45:14 - перейти к сообщению
правильно
4. Kandiar - 07 Ноября, 2013 - 18:05:35 - перейти к сообщению
Правильно. Это 1 нормальная форма БД. (Их вроде 6, но желательно помнить 3 первые!)
Первая нормальная форма – любое поле любой записи хранит только одно значение.
5. Ch_chov - 07 Ноября, 2013 - 18:11:58 - перейти к сообщению
alsio пишет:
нужна еще одна таблица 'telefony_sotrudnikov' с полями: id, sotrudnik_id, tel

А зачем два поля для ИД?
6. alsio - 07 Ноября, 2013 - 18:50:23 - перейти к сообщению
Ch_chov пишет:
alsio пишет:
нужна еще одна таблица 'telefony_sotrudnikov' с полями: id, sotrudnik_id, tel

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


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


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

Смотрите здесь - http://i-novice[dot]net/6-normalnyx-form-bd/
8. Ch_chov - 07 Ноября, 2013 - 19:14:28 - перейти к сообщению
alsio пишет:
Ну, первый ид - индивидуальный порядковый номер

А где он будет использоваться? Присоединять таблицу ведь все равно по второму ИД будете.
9. alsio - 07 Ноября, 2013 - 19:26:19 - перейти к сообщению
Ch_chov пишет:
А где он будет использоваться? Присоединять таблицу ведь все равно по второму ИД будете.


Да как-то казалось, что обязательно нужен автоинкремент. А так да, нигде использоваться не будет, вроде.

 

Powered by ExBB FM 1.0 RC1