Профиль пользователя должен быть отдельной моделью?

Это работает на меня в Java 1.5 - я разделил определенные исключения для удобочитаемости.

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import java.io.ByteArrayInputStream;

public Document loadXMLFromString(String xml) throws Exception
{
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

    factory.setNamespaceAware(true);
    DocumentBuilder builder = factory.newDocumentBuilder();

    return builder.parse(new ByteArrayInputStream(xml.getBytes()));
}
8
задан Benjamin 1 September 2014 в 09:32
поделиться

6 ответов

  • Плюсы: упрощает каждую модель
  • Минусы: управлять двумя сразу несколько сложнее

Это в основном сводится к тому, насколько велик пользователь и профиль. Если у пользователя 5 полей, а у профиля 3, то смысла нет. Но если у пользователя 12 полей, а у профиля 20, то вам обязательно нужно.

4
ответ дан 5 December 2019 в 10:03
поделиться

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

Если пользователь лишь время от времени погружается в свой фактический профиль, но к модели User обращаются часто, вам обязательно следует сделать ее отдельным объектом с однозначным отношением. Если данные профиля требуются каждый раз, когда требуются данные пользователя, вы можете поместить их в одну таблицу.

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

4
ответ дан 5 December 2019 в 10:03
поделиться

Я бы рекомендовал сохранить столбцы профиля в модели пользователя. для ясности и простоты. Если вы обнаружите, что используете только определенные поля, выберите только нужные столбцы, используя: select.

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

4
ответ дан 5 December 2019 в 10:03
поделиться

Пользователь "владеет" различными ресурсами на вашем сайте, такими как комментарии и т. Д. Если вы отделите профиль от пользователя, то это всего лишь еще один ресурс. Пользователь статичен, а профиль будет время от времени меняться.

3
ответ дан 5 December 2019 в 10:03
поделиться

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

2
ответ дан 5 December 2019 в 10:03
поделиться

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

0
ответ дан 5 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: