Дизайн базы данных (нормализация?) - PullRequest
0 голосов
/ 19 сентября 2011

Как будет выглядеть проект базы данных в следующей ситуации?

Это для какой-то системы инвентаризации.

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

Допустим, пользователь создает другой элемент - тип , который не имеет серийного номера или каких-либо уникальных полей, это означает, что я не могу построить свою базу данных с полями от property1 до property10 в базе данных.

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

Любые предложения о том, как построить эту БД?

Ответы [ 3 ]

1 голос
/ 19 сентября 2011

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

Если это так, я думаю, что будет дваУ параметров

  • есть две таблицы: одна с уникальными правилами, а другая без ИЛИ
  • Применение уникальных правил на уровне приложений как бизнес-правил вместо уровня базы данных.
1 голос
/ 19 сентября 2011

Если бы я правильно понял ваш вопрос, я бы просто сделал что-то простое и понятное, например:

enter image description here

0 голосов
/ 19 сентября 2011

вы можете достичь этого, Предположим, имя таблицы - это элемент, здесь идентификатор элемента - это первичный ключ. Он позволяет легко выбрать, какой элемент вы хотите. Затем, публикуя (вставляя) серийный номер и MAC-адрес, вы должны проверить с помощью php, что нет дублирования данных. .

я получил тебя!

...