нормализующие столбцы данных, которые имеют индивидуальную зависимость - PullRequest
0 голосов
/ 20 января 2012

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

когда агент публикует работу, адрес доски, агент, которому принадлежит доска, и тип работы сохраняются.

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

// background info to help understand the project more
AGENTS
*agent_id
agency_name
agency_office
address_id*

BOARDS
*board_id
client_id*
address_id*

PENDING_JOBS
*job_id
board_id*
job_type_id*
notes
submitted_on

Теперь у меня есть таблица типов работ. Каждая работа имеет:

  • board_id (для идентификации клиента и места, где находится доска)
  • job_type_id (поднимали ли доску, снимали, меняли, добавляли проданные слипы и т. Д.)

Это моя ТАБЛИЦА ВИДОВ РАБОТ

JOB_TYPES
*job_type_id
action
board
slip

и данные будут выглядеть так: (строки опущены)

JOB_TYPES
id | action       | board    | slip
-----------------------------------
1  | up           | for sale | sold
2  | up           | to let   | let by
3  | up           | for sale | null
4  | up           | to let   | null
5  | down         | null     | null
6  | service call | null     | null

Я пытался эффективно нормализовать свою базу данных, и в соответствии с нормализацией вы должны иметь в таблице только те данные, которые напрямую зависят от идентификатора, например, agent_name и agent_office напрямую зависят от agent_id!

Но в таблице типов работ значение SLIP напрямую зависит от столбца BOARD, а столбец board напрямую зависит от столбца action.

Но, конечно, было бы неправильно выделять ВСЕ столбцы в отдельные таблицы с ключом, не так ли?

Полагаю, мой смутный вопрос:

Is this okay?
Or in the real world, do people use better method or storing data like this?

Ответы [ 2 ]

0 голосов
/ 20 января 2012

Две строки «на продажу» / продано и «на продажу» / нуль противоречат вашему утверждению о функциональной зависимости от СОВЕТА до СЛИПА.

0 голосов
/ 20 января 2012

Но в таблице типов работ SLIP напрямую зависит от столбца BOARD, а столбец Board напрямую зависит от столбца действий.

Зависимость - этотехнический термин в нормировании;это имеет точное значение.Вот часть ваших данных.

JOB_TYPES
id | action       | board    | slip
-----------------------------------
1  | up           | for sale | sold
2  | up           | to let   | let by
3  | up           | for sale | null
4  | up           | to let   | null

В нормировке вопрос:

  • "Действие определяет доску?"означает
  • «Учитывая одно значение для« действия », знаю ли я одно и только одно значение для« доски »?»

И ответ явно "Нет".Учитывая action = 'up', вы знаете, по крайней мере, два разных значения для 'board': 'for sale' и 'to let'.Таким образом, там нет функциональной зависимости.

Сказав это, я бы сказал, что таблица типов работ выглядит немного странно.Я подозреваю, что вы объединяете несколько независимых фактов в одну таблицу, но я бы хотел увидеть более репрезентативные данные, прежде чем я вынесу такое решение.(Подумайте: «положить доску», «сдать доску», «снять доску», «снять доску».)

Объединение нескольких независимых фактов в одну таблицу создает многозначную зависимость, которую выможно исправить путем нормализации до 4NF или 5NF.

...