Связи в админке

StalkerClasses

Новичок
Есть две таблицы которые редактируются в админке.
Можно сделать поле связи между двумя таблицами - например таблица два выбирается как связь M:1.

Были ли у Вас на практике случаи когда вам нужно было делать дополнительное условие выбора записей?
Т.е. фильтрацию записей таблицы два. Или это в принципе нарушает теорию БД?
 

ksnk

прохожий
StalkerClasses, imho, что-то неправильное делаешь.
СМС - она как лук, состоит из слоев...
На верхнем уровне, обычно, это уровень представлений (view), все данные преставляют собой один массив (плоские таблицы). Для примера - информация карточки товара видится на уровне представлений как один массив из свойств конкретного товара.
Более глубокий слой - уровень модели данных. Задача модели данных - собрать раскиданные по всем заначкам , таблицам и конфигам данные, относящиеся именно к этому товару и выдать на уровень представлений плоскую стуктуру данных. Вторая задача, измененный каким нибудь образом результат нужно опять распихать по нужным табличкам и заначкам.

Вот редактор данных должен и обязан работать не с чистыми данными распиханными по загашникам, а с результирующим массивом-представлением. Тоесть с моделью данных. И никакого знания о внутренней структуре данных для редактирования данных, даже и в админке, не требуется.

Если делается редактор базы данных, то все сложно и мутно. Получается что-то типа друпала или, не к ночи будь помянут, битрикса. Или чистая простота типа админера, который в свободном доступе юзера не сильно лучше и явно опаснее.
 

StalkerClasses

Новичок
Получается редактор по факту должен увидеть только тот список значений второй таблицы что нужен - и все.
А как это устроено с точки зрения внутренней архитектуры его не касается.
 

ksnk

прохожий
Зависит от того, что и кому ты предлагаешь редактировать. Если это обычный админ сайта, которому нужно следить за наполнением магазина товарами, ему не только не нужно знать как устроена база, но и при недостаточной его программисткой квалификации - вредно.
 

WMix

герр M:)ller
Партнер клуба
.. например таблица два выбирается как связь M:1.
Были ли у Вас на практике случаи когда вам нужно было делать дополнительное условие выбора записей?
допустим это заказ и позици, вопрос в том как отфильтровать позиции к примеру по определенному производителю?
 

StalkerClasses

Новичок
допустим это заказ и позици, вопрос в том как отфильтровать позиции к примеру по определенному производителю?
Или список страниц - где можно выбрать только определенную ветку дерева страниц сайта. В общем это нормальная ситуация для баз данных.
 

WMix

герр M:)ller
Партнер клуба
контроллер
$items = $this->model->getCollection($id)->filterBy(Criteria)->fetch();

на уровне модели чтото типа

PHP:
function getCollection($id){
  $this->query = 'select * from positions where parent = ?';
}

function filterBy($value){
  $this->query .= ' and field=?';
}
 
Сверху