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 » PHP » SQL и Архитектура БД » Помогите со структурой таблицы

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

1. leshiy_SV - 24 Марта, 2010 - 14:33:02 - перейти к сообщению
Всем доброго дня. Подскажите. Немного не пойму как лучше организовать структуру таблицы. Таблица будет содержать разные записи, который потом при этом будут разбивать на категории, т.е. какое то поле будет содержать номер категории. так вот в чем загвоздка, не пойму как лучше организовать это с учетом того, что запись может относиться сразу к нескольких категориям. первое что пришло в голову это заносить в поле Categories номера категорий через запятую. только вот как потом их оттуда вытаскивать именно по нужной категории

| ID | Name | Categories | Description |
-------------------------------- --------------
2. AdMeen - 24 Марта, 2010 - 15:29:11 - перейти к сообщению
Если одна таблица, то id|name|cat|descr, как вы и подумали. Выборка
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM tbl_name WHERE cat='cat_name'
  3.  


если "по уму", то 2 таблицы

id | name | descr -таблица ваших записей
id | name -таблица категорий
3. leshiy_SV - 25 Марта, 2010 - 07:59:40 - перейти к сообщению
AdMeen пишет:
если "по уму", то 2 таблицы
это я понял, так и сделал. вопрос немного не в этом. А в том, как заносить запись, чтобы она относилась сразу к нескольким категориям?
4. AdMeen - 25 Марта, 2010 - 08:53:11 - перейти к сообщению
leshiy_SV пишет:
AdMeen пишет:
если "по уму", то 2 таблицы
это я понял, так и сделал. вопрос немного не в этом. А в том, как заносить запись, чтобы она относилась сразу к нескольким категориям?


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

Вводите дополнительную таблицу id | id_pos | id_cat. И через неё реализуйте связи.
5. leshiy_SV - 25 Марта, 2010 - 08:54:13 - перейти к сообщению
leshiy_SV пишет:
связь многие ко многим
об этом можно по подробнее
6. AdMeen - 25 Марта, 2010 - 09:05:58 - перейти к сообщению
leshiy_SV пишет:
об этом можно по подробнее


вообще, RTFM конечно. Конкретно для вашего случая 3 таблицы:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  RECORD   ADD_TBL    CAT_TBL
  2.  _______   ________    ________
  3.  id1           id               id2
  4.  name       rec_id         name
  5.  descr       cat_id
  6.  

связи следующие id1-rec_id & cat_id-id2

________________

в соответствии с этими связями и производите выборку

 

Powered by ExBB FM 1.0 RC1