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 :: Разбивать ли такие данные на отдельные таблицы
Покинул форум
Сообщений всего: 77
Дата рег-ции: Февр. 2012
Помог: 0 раз(а)
Привет. 2 простых вопроса по организации базы, как я понимаю ситуации схожи и видимо ответ будет один на оба сразу
1.
Допустим у меня есть основная таблица с фирмами, у каждой фирмы может быть 3 типа новостей: непосредственно новости, скидки, акции.
Каждый тип нужно будет выводить в разных колонках на сайте и в разных разделах.
Структура будет идентична, различаться будет только тип к которому относится запись.
хранить в ней все записи, а потом делать выборки/сортировки и прочее указывая нужные тип записи, или же сделать 3 разные таблицы, но при этом там будет только 2 поля: ID и firm_id для связи?
Второй вопрос почти идентичен. Допустим у меня есть фотографии для фирм и фотографии относящиеся к новостям – лучше раздельные таблицы или использовать дополнительное поле в таблице которое будет указывать на признак того что это – фотография новости или фотография для записи о фирме (но в этом случае нужно будет использовать некое абстрактное foreign_id для связи и делать более сложную выборку с несколькими условиями).
halsoft
Отправлено: 09 Января, 2013 - 19:27:13
Гость
Покинул форум
Сообщений всего: 94
Дата рег-ции: Нояб. 2012 Откуда: The Land of Chechens
Помог: 3 раз(а)
1. В вашем случае не принципиально, мне кажется. Вы ожидаете, что, если собрать в одной таблице все новости, то там будет очень много записей и база не справится с этим?
2. Вы собираетесь хранить фотографии в базе? Не лучшая идея. Если на каждую запись приходится по одной фотографии - то сохраняйте как файл, давая ему имя равное id записи.
----- Хорошие дела улучшают настроение, делают жизнь счастливей, а людей человеками.
esterio
Отправлено: 09 Января, 2013 - 19:44:32
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Почитайте нормализацию а также навскидку денормализацию, и вопрос отпадет сам по себе
Васенька
Отправлено: 09 Января, 2013 - 20:26:43
Гость
Покинул форум
Сообщений всего: 77
Дата рег-ции: Февр. 2012
Помог: 0 раз(а)
halsoft пишет:
1. В вашем случае не принципиально, мне кажется. Вы ожидаете, что, если собрать в одной таблице все новости, то там будет очень много записей и база не справится с этим?
2. Вы собираетесь хранить фотографии в базе? Не лучшая идея. Если на каждую запись приходится по одной фотографии - то сохраняйте как файл, давая ему имя равное id записи.
1. нет, про такое я даже и не думал. Просто хочу понять как мне будет удобнее с этим работать.
2. нет я именно имена файлов буду хранить. На одну запись может быть много фотография.
snikers987
Отправлено: 09 Января, 2013 - 21:00:27
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Васенька пишет:
2. нет я именно имена файлов буду хранить. На одну запись может быть много фотография.
Делайте для картинок таблицу связей один ко многим.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
Васенька
Отправлено: 09 Января, 2013 - 21:14:08
Гость
Покинул форум
Сообщений всего: 77
Дата рег-ции: Февр. 2012
Помог: 0 раз(а)
snikers987 пишет:
Васенька пишет:
2. нет я именно имена файлов буду хранить. На одну запись может быть много фотография.
Делайте для картинок таблицу связей один ко многим.
Да я так и собираюсь. Вопрос лишь хранить ли в этой таблице дополнительный признак который будет показывать относится картинка к фирме или к новости или же сделать 2 таблицы.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.