powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Хранение настроек сайта
25 сообщений из 133, страница 1 из 6
Хранение настроек сайта
    #39772195
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разрабатываю проект. В нем есть добавление своих сайтов. У сайта есть настройки. На данный момент остановился на настройках виджета (Это виджет онлайн чат поддержки). И вот стал вопрос. Как хранить это дело? я рассматриваю или отдельные сущности в бд и в java или же в сущности настроек сайта писать json со всеми данными? Первый вариант мне кажется грамоздким для бд ибо это придется грузить каждый раз когда человек заходит на сайт владельца где собственно и стоит этот виджет. А вот с json-ом вижу беду в том что есть риск того-то что чего-то не будет хватать + провалидировать такую структуру будет труднее чем объект в джаве. Прилагаю скрин настроек виджета - Их довольно таки много. В json-е удобно хранить такое, но есть и минусы.

Что скажете?
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772211
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopРазрабатываю проект. В нем есть добавление своих сайтов.и не смотрел как у конкурентов?
Т.к. непонятно, на тройки конструктора сайта или готового сайта у заказчика.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772218
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, а как я гляну сервак конкурентов? фронт я то глянул, но больше инфы он не даст мне.

Это не конструктор сайта или сайтов. Это настройки виджета, который клиент будет подключать себе на сайт.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772220
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, то бишь схема такая. Регается клиент. Добавляет свой сайт. Мы проверяем что это реально его сайт. Выдаем ему скрипт для виджета. Он (или программисты) вставляет код в html или что там у него и используется чат. И вот эти вот настройки отвечают за сам виджет этот - цвета, расположение, размеры и т.д.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772223
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopя рассматриваю или отдельные сущности в бд и в java или же в сущности настроек сайта писать json со всеми данными?сущность. Причем разные у разных типов сайта. Как в экселе у ячейки свои свойства, а у строки свои.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772229
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВыдаем ему скрипт для виджета. Он (или программисты) вставляет код в html или что там у него и используется чат. И вот эти вот настройки отвечают за сам виджет этот - цвета, расположение, размеры и т.д.ну дак он в скрипте проставит?
Настройки кому?
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772230
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
У меня профиле сайт. Давай скрипт.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772237
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123ну дак он в скрипте проставит?
Настройки кому?

Нет, нет. Он настраивает у нас. То бишь вся инфа хранится в нашей бд. А скрипт служить только для подгрузки скрипта с виджетом. Сам виджет идет на сервак за настройками по ресту.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772240
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tsyklop,
У меня профиле сайт. Давай скрипт.
Этого еще нет. я только делаю.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772248
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123сущность. Причем разные у разных типов сайта. Как в экселе у ячейки свои свойства, а у строки свои.
Правильно ли я тебя понял? настройки виджета это отдельная сущность, в которой есть другие сущности? к примеру есть настройки цветовой гаммы. Там поле больше 10. Соответственно я это выношу в отдельную сущность и связываю с сущностью настроек виджета?
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39772273
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

Да. Получается что вся БЛ это показ фрейма чата.
Это не ИС учетка и Модель будет показ всех фреймов всяких разных.
Напр. Если не заплатил, то показать красным....
Это бизнес логика и вполне можно в таблы распихать по полям через ОРМ.
Так это основа вашей ИС.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780692
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня получилось вот так.

Скажите пожалуйста, насколько это хорошо или же плохо. Критика приветствуется!

Спасибо!

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "widgetSettings")
@EqualsAndHashCode(callSuper = true)
public class WidgetSettingsEntity extends AbstractEntity {

    @JoinColumn(name = "widgetCommonSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetCommonSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetCommonSettingsEntity common;

    @JoinColumn(name = "widgetSizeSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetSizeSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetSizeSettingsEntity widget;

    @JoinColumn(name = "widgetButtonSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetButtonSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetButtonSettingsEntity widgetButton;

    @JoinColumn(name = "widgetColorsSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetColorsSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetColorsSettingsEntity colors;

    @JoinColumn(name = "widgetCallOrderButtonSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetCallOrderButtonSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetCallOrderButtonSettingsEntity callOrderButton;

    @JoinColumn(name = "widgetOperatorEvaluationSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetOperatorEvaluationSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetOperatorEvaluationSettingsEntity operatorEvaluation;

    @JoinColumn(name = "widgetRecallsSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetRecallsSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetRecallsSettingsEntity widgetRecalls;

    @JoinColumn(name = "widgetRecallSendFormSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetRecallSendFormSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetRecallSendFormSettingsEntity widgetRecallSendForm;

    @JoinColumn(name = "widgetNotificationsSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetNotificationsSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetNotificationsSettingsEntity widgetNotifications;

    @JoinColumn(name = "widgetOnlineModeSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetOnlineModeSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetOnlineModeSettingsEntity widgetOnlineMode;

    @JoinColumn(name = "widgetPersonalDataFormOnlineModeSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetPersonalDataFormOnlineModeSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetPersonalDataFormOnlineModeSettingsEntity widgetPersonalDataFormOnlineMode;

    @JoinColumn(name = "widgetOfflineModeSettingsId", nullable = false, updatable = false)
    @OneToOne(targetEntity = WidgetOfflineModeSettingsEntity.class, fetch = FetchType.EAGER, optional = false)
    private WidgetOfflineModeSettingsEntity widgetOfflineMode;

    @OneToOne(fetch = FetchType.LAZY, targetEntity = SiteEntity.class, optional = false)
    @JoinColumn(name = "siteId", nullable = false, updatable = false)
    private SiteEntity site;

}
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780694
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут еще такой момент. На некоторых табах (скрин в первом посте) есть кастомные поля. на данный момент я сделал отдельными таблицами. Насколько это гуд? у меня получилось 3 таблица с 3 одинаковыми полями, но с разной привязкой к сущности, к которой она относится.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780712
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopСкажите пожалуйста, насколько это хорошо или же плохо.
Вы планируете расширять таблицу БД на столько столбцов, сколько у вас виджетов в программе? Это охрененно хорошо, это самый прогрессивный подход.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780732
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
Так?
Код widgetColorSettingsId userLogin34 123 Petro
Тогда продолжи пример Модели в базе.
Его согласовывают в ветке Разработка бд без java
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780734
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopТут еще такой момент. На некоторых табах (скрин в первом посте) есть кастомные поля. на данный момент я сделал отдельными таблицами. Насколько это гуд? у меня получилось 3 таблица с 3 одинаковыми полями, но с разной привязкой к сущности, к которой она относится.ничего не понятно. Нужны скрины со стрелочками, пояснениями и т.д.
Не вникая, таблица это сущность. Как у тебя поле сущносиь я не понял.
И чем отличаются кастомные поля от других напиши по русски.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780843
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лысый дядькаВы планируете расширять таблицу БД на столько столбцов, сколько у вас виджетов в программе? Это охрененно хорошо, это самый прогрессивный подход.
это сарказм?
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780855
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123ничего не понятно. Нужны скрины со стрелочками, пояснениями и т.д.
Не вникая, таблица это сущность. Как у тебя поле сущносиь я не понял.

В том коде что я привел - одно поле класса это одна таблица. Или же сущность отдельная. Между ними связь.

Petro123И чем отличаются кастомные поля от других напиши по русски.

поля которые можно добавить самому. то бишь не жестко забитые поля мной, а юзер сам добавил свои поля.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780891
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopэто сарказм?
Блин, вот ты правда думаешь, что именно так проектируют базы данных?
Твою таблицу можно свести к трем столбцам - НазваниеВиджета, НазваниеПараметра, Значение.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780896
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лысый дядькаБлин, вот ты правда думаешь, что именно так проектируют базы данных?
Твою таблицу можно свести к трем столбцам - НазваниеВиджета, НазваниеПараметра, Значение.

Виджет один. Как бороться тогда с тем что настроек может не быть? то бишь получается так что некоторых параметров может не быть в это таблице. как быть тогда?
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780908
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
Сначала Модель. Потом ГУИ с твоими скринами и полями.
Модель я показал как делают - маппинг + ТАБЛИЦЫ НАГЛЯДНО.
Второе ты не сделал. Делай.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780909
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780914
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopполя которые можно добавить самому. то бишь не жестко забитые поля мной, а юзер сам добавил свои поля.тут надо думать, т.к. Юз кейс их создания ты не предоставил.
Если он в скрипте делает, то пусть в скрипте и сидят. У тебя в БЛ не учавствуют.
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780928
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123тут надо думать, т.к. Юз кейс их создания ты не предоставил.
Если он в скрипте делает, то пусть в скрипте и сидят. У тебя в БЛ не учавствуют.

не понял. в каком скрипте?

Вот пример настроек с полями
...
Рейтинг: 0 / 0
Хранение настроек сайта
    #39780931
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tsyklop,
Сначала Модель. Потом ГУИ с твоими скринами и полями.
Модель я показал как делают - маппинг + ТАБЛИЦЫ НАГЛЯДНО.
Второе ты не сделал. Делай.

я не могу с h2 сделать модель.
...
Рейтинг: 0 / 0
25 сообщений из 133, страница 1 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Хранение настроек сайта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]