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. pantela - 24 Ноября, 2011 - 09:41:05 - перейти к сообщению
Проект делается на фреймворке CodeIgniter (думаю смысла не имеет, но всё же сказал) В проекте есть записи компании, у каждой компании должно быть неограниченное количество категории и подкатегории, структура у меня таблицы компании примерно такая:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE IF NOT EXISTS `companies` (
  3.   `id` int(11) NOT NULL AUTO_INCREMENT,
  4.   `cat_id` varchar(255) NOT NULL,
  5.   `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  6.   PRIMARY KEY (`id`)
  7. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
  8.  

(все поля не привёл в дампе, думаю смысла нету)
так вот вопрос в том как лучще привязывать категории к компании, 2 момента я думаю, если есть ещё варинты предлогайте:

1. Сделать новую таблицу и туда прописывать АД категории и АД компании, т.е. сколько будет категории у компании столько записи в таблице будет

2. Сделать в таблице компании в поле cat_id перечисдление АД категории через запятуную.

Не смогли бы вы подсказать какой варинат лучще, и какой на что влияет на скорость, гибкость и прочее, какой когда примеряется если есть такие случии.

спс.Ув.

P.S. Если есть ещё варианты слушаю Улыбка
2. EuGen - 24 Ноября, 2011 - 09:46:11 - перейти к сообщению
Только первый вариант, никаких перечислений через запятую. Почему? Вам бы почитать про реляционные БД, но вкратце - представьте, что у Вас выборка - нужно посчитать количество компаний с группировкой по категориям за определенную дату.
Используйте таблицу-связку.
3. Stierus - 24 Ноября, 2011 - 09:46:53 - перейти к сообщению
Вариант 1 - стандартная связь многие ко многим. Вариант 2 - полная жесть. как вы будете в этих полях искать? задача - найти все компании, находящиеся в какой-то категории ... вот у вас и проблема Улыбка
4. pantela - 24 Ноября, 2011 - 09:58:34 - перейти к сообщению
ясно, большое вам спасибо. Закатив глазки

 

Powered by ExBB FM 1.0 RC1