[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как лучше сделать структуру?
Эли4ка
Добрый вечер. Еще одна задача. На основе MVC laugh.gif (ну я так думаю).
Вот есть у нас простой бложик. Посты да комментарии. Для него мы можем сделать PostController и CommentController. Функции и у новостей и у комментариев будут одинаковые:создать, редактировать, показать, удалить (Пост|Комментарии). В общем CRUD. Ну еще есть пагинация, но это сейчас не имеет смысла. так вот, а что если у нас будет допустим сайт об автомобилях. где нужно добавлять информацию не только об автомобиле, но и его деталях и комплектующих. Ясное дело, что у комплектующих разное количество полей для заполнения. Например: двигатель-мощность, топливо и др. и колесо-диаметр, зимняя или нет и др. То есть для каждой комплектующей нужна своя таблица ибо в одной таблице суперсвалку не получится создать. Получается для каждой детали тоже могут быть такие действия:добавить, редактировать, показать, удалить. Но тогда получается для каждой комплектующей и каждой детали тоже нужно делать отдельный контроллер типа WheelController, EngineController и др. Или лучше создать один супер-пупер глобальный контроллер куда запихнуть все это? Просто я придерживаюсь первого варианта. Но то что у каждого контроллера будут повторяющие методы для разного количества параметров пока вызывает непонятки.Как лучше поступить?
arbuzmaster
Цитата
То есть для каждой комплектующей нужна своя таблица ибо в одной таблице суперсвалку не получится создать.

Зачем делать таблицу для каждой комплектующей, для чего 100500 таблиц? Создайте одну таблицу Parts и в ней разместите все наименования деталей и принадлежность к марке авто. А потом у Вас например будет таблица Cars и в ней будут поля для каждой из частей (размер дисков, цвет и тд), которые вы будете присваивать каждому авто. Может я чего то не понимаю blink.gif

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Игорь_Vasinsky
Эли4ка
ты вот несколько раз в своих постах указывала yii, намекая на то, что у тебя есть какой-либо опыт, но по твоему данному посту - складывается совершенно обратное ощущение.

установи yii - посмотри несколько уроков.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Эли4ка
Я уже как-то поднимала околопохожую тему.
тут в другом загвоздка. У колеса одни параметры, у двигателя другие, у бензобака третьи. Можно конечно в общей таблице сделать примерно так:
id
parametr_name(или parametr_id,но тогда наименования параметров хранить в другой таблице, а тут держать только id)
value(тут хранить значение данного параметра)
Но это же будет свалка как мне кажется.
Эли4ка
Цитата (Игорь_Vasinsky @ 14.02.2019 - 19:33)
намекая на то, что у тебя есть какой-либо опыт, но по твоему данному посту - складывается совершенно обратное ощущение.

Игорь_Vasinsky, не совсем поняла или вы про создание собственных контроллеров в yii?
Эли4ка
P.S. знания и Эли4ка вещь не совместимые rolleyes.gif
Игорь_Vasinsky
Возможно кто-то и пихает функционал 3х "разделов" в один контроллер и это наверно весело

По мне так намного легче поддерживать простую структуру, где 1 контроллер на раздел

Этот контроллер содержит основные методы

- index
- edit
- delete

остальное по усмотрению, например

- activate
- deactivate

У каждого раздела свой контроллер - с данным набором основных методов (иногда даже delete нет - если не предусмотрено удаление)

по поводу твоего вопроса по структуре - твой последний вариант - как ты говоришь "свалка" - такую структуру уже очень давно используют движки магазинов для хранения данных о товарах и их характеристиках (которых может быть очень много у одного товара и парочка у других)

product
-----------
id
product_id
price
quantity


param
---------
id
name
...
...


product_param
----------
product_id
param_id
value
...
...

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Эли4ка
Игорь_Vasinsky, спасибо большое за подробный ответ. Теперь уверенности добавилось, сделаю как изначально планировала.
Игорь_Vasinsky
да, при этом метод edit - как для сохранения новой модели, так и для обновления существующей

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Эли4ка
то есть лучше не делать два (update,save) а все же один сделать?
depp
почитайте про EAV.
Эли4ка
Цитата (depp @ 15.02.2019 - 11:28)
почитайте про EAV.

почитаю,спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.