Это не должна быть война. Гармония возможна.
Использование одна таблица для полного расположения и отделений в нем.
Top content
Left navigation
Main content
Right navigation
Bottom content
Взгляд - никакие вложенные таблицы.
я прочитал столько статей о том, как достигнуть этого с отделениями, но никогда не находил ничего, что работает каждый раз без проблем.
Отделения являются великими, как только у Вас есть полная структура, но вполне откровенно говоря, жидкий заголовок/нижний колонтитул и три столба жидкости являются общей болью в отделениях. Отделения не были разработаны для текучести итак, почему используют их?
Примечание, что этот подход даст Вам 100%-е соответствие CSS в текст ссылки
Учитывая, что вы в любом случае сохраняете идентификатор в сеансе, сеанс имеет наибольший смысл. Выполнение session_start () загружает информацию о сеансе, поэтому, загрузили ли вы 1 или 10 элементов после этого, в значительной степени не имеет значения (если они не действительно большие, но это будет проблемой в любом случае).
Так что придерживайтесь session.
Если вас действительно беспокоит скорость, используйте кэш в памяти, такой как APC или memcache. Беспокойство о скорости 10 элементов файловой системы или базы данных отвлекает. Разница будет настолько минимальной, что не будет иметь значения.
Примечание: вышеизложенное предполагает две вещи:
Зависит от того, что вы подразумеваете под «эффективным». Один эффективен по времени, а другой по месту на диске. И очень сложно судить их друг о друге, если только ваши требования не находятся на крайнем конце спектра. Вы, вероятно, поступите нормально, просто подбросив монетку, измеряя производительность с течением времени и корректируя любые наблюдаемые проблемы.
Преждевременная оптимизация является корнем все зло.