Таблицы базы данных для записей другой таблицы? - PullRequest
0 голосов
/ 19 мая 2009

Я разрабатываю новую версию моего Java-приложения (с использованием встроенной базы данных H2) вокруг редизайна того, как я буду обрабатывать свои данные. Вот как я это планировал:

  • Записи таблицы-
    • ID заявки
    • Имя входа
  • Таблица свойств-
    • Код недвижимости
    • Название недвижимости
  • (Индивидуальная собственность) таблица значений-
    • Значение ID
    • ID входа
    • (столбцы значений ...)
  • Таблица значений (индивидуальная запись)
    • Название недвижимости
    • (Индивидуальная собственность) значение ID

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

Это хороший способ сделать это?

Редактировать: Я не уверен, что объяснил это хорошо ...

Ответы [ 3 ]

3 голосов
/ 19 мая 2009

На мой взгляд, это очень плохой способ моделирования данных, но это очень сложный взгляд на ситуацию, поскольку мне не приходилось использовать эту модель на практике. Кстати, это называется подход «Entity-Attribute-Value». И причина, по которой мне это не нравится, заключается в том, что он очень не похож на схему, поскольку большинство функций SQL необходимо каким-то образом реплицировать.

Определенно есть время и место для этого (например, если вы намереваетесь смоделировать много объектов, которые имеют разнородные модели) или которые имеют схемы, которые часто меняются. Но я лично думаю, что это ужасно.

1 голос
/ 19 мая 2009

Если я вас правильно понял, я бы использовал таблицы пересечения или соединения вместо того, что вы описали.

Таким образом, вы можете создать запрос, чтобы получить все свойства для каждого элемента или все значения для каждого элемента.

0 голосов
/ 20 мая 2009

Я согласен с Неизвестным Google. Это также называется эффектом внутренней платформы .

...