Возможно ли и хороший способ построить базу данных динамически? - PullRequest
0 голосов
/ 19 сентября 2018

Мой вопрос касается конкретного сценария и того, какой подход я должен использовать, чтобы наилучшим образом сделать слабую связь и принцип открытого / закрытого типа.Я объясню мой сценарий очень подробно, чтобы вы поняли, с чем я сталкиваюсь.Извините, это будет длинный текст.Мне очень жаль заранее.В любом случае, ребята, спасибо.

Итак, я создаю сайт.На этом сайте пользователи одного типа могут запрашивать любые виды услуг, связанных с транспортом.(он может спросить, что ему нужен груз для перемещения из одного места в другое, ему может понадобиться отличный сервис для своих гостей, ему может понадобиться строительный транспорт, ему может понадобиться транспорт для экскурсий, поэтому все, что связано с перевозками),С другой стороны, есть один тип пользователей, которые имеют все эти виды услуг (у них есть грузовики и водители, которые могут пойти, забрать груз клиента и перевезти его куда-нибудь, у них есть строительные грузовики, у них есть транспорт).на экскурсию и тд).Там будут разные типы пользователей (администратор, клиент, service_provider, эмитенты, банкиры, водители).Я уже упоминал два типа пользователей (клиенты и service_providers).

Итак, чтобы начать создавать такой сложный веб-сайт, я так решил.Администратор - это тот, кто добавляет типы транспорта.Затем администратор также добавляет сервисы (сервис может иметь дочерние подтипы).Допустим, админ хочет добавить новую услугу - движение грузов.Затем он также хочет добавить новую услугу - грузовые автомобили бизнес-класса.Учтите, что эти сервисы должны иметь разные столбцы.Итак, у нас есть две службы.Теперь представьте, что я мог сделать.Я мог бы создать таблицы mysql так, чтобы потребовались только две таблицы, хотя на веб-сайте может быть 15 различных видов услуг.

enter image description here

Вот так,Это динамичный способ.так что для каждого сервиса мне не нужно приходить разработчиком и добавлять новые таблицы для каждого.Что может случиться, когда администратор добавляет новую услугу, он указывает имя, и оно переходит к первой таблице, указанной на картинке.Затем, если он хочет, чтобы эта служба была листом, он идет и добавляет столбцы для этой службы (те столбцы, которые понадобятся, когда клиент перейдет на эту страницу службы и должен запросить конкретный бизнес-класс или движение груза).Представьте, что если клиент отправляется в службу перемещения груза, он должен заполнить форму (вес груза, начальный адрес груза и т. Д.), Чтобы эти свойства или столбцы добавлялись администратором из бэк-энда.Это может быть возможным, и это действительно так.Но теперь представьте, когда пользователь (тип клиента) заходит на веб-сайт и выбирает службу перемещения груза, я делаю с этим идентификатором запрос, делаю запрос и получаю результаты от service_types и service_type_columns, и представление генерируется.Но когда я смотрю в будущее этого проекта, возможно, что он станет более сложным, и я не знаю этого подхода (генерации динамического mysql и динамических представлений во внешнем интерфейсе будет достаточно).

Я думаю, что объяснил ситуацию, может быть, не так ясно, как я намеревался, но вы поняли.

Мой вопрос: должен ли я пойти на этот динамический подход (динамический MySQL - так что для служб я неперейти к mysql и создать новую таблицу и различные столбцы для каждого нового сервиса, а также динамически генерируемые представления во внешнем интерфейсе) или мне следует создать новое представление для каждого сервиса и добавить новую таблицу для каждого сервиса?Я хотел позволить администратору создать новый сервис из серверной части, и этот новый сервис начал работать для всех типов пользователей без моего вмешательства вообще.Как вы думаете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...