2

Я пытаюсь реализовать отношение сущности для системы базы данных оракулов.Конструкция отношения сущности

Я достаточно запутан, если я должен отделить таблицу ниже или объединить их в 1.

- Supply 

ItemNo (PK) , Name, ItemDescription, QuantityInStock, BackOrderLevel, CostPerUnit 

- PharmaceuticalSupply 

DrugNo (PK) , Dosage, MethodOfAdmin 

В основном в моей ERD, я указал PharmaceuticalSupply на поставку как подмножество, которое наследует атрибут, но и иметь дополнительные атрибуты , Неужели я ошибаюсь в этом?

+0

Я бы объединил его в Supply, с атрибутом Type, определяющим как фармацевтический тип, упростит ваш код sql и application. – Nelson

+0

Это имеет смысл. Большое спасибо – user2866313

ответ

0

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

Я бы по-прежнему вводил ключ DrugNo для индексации. Может ли номер позиции появляться более одного раза в таблице PharmaceuticalSupply? Если вы это сделаете, вам обязательно понадобится ключ DrugNo.

  • PharmaceuticalSupply

DrugNo (PK), ITEMNO (FK), дозировка, MethodOfAdmin

+0

Эй, были бы хирургические, нехирургические и фармацевтические принадлежности. В идеале фармацевтическая поставка должна иметь таблицу самостоятельно. – user2866313

1

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

Обратите внимание, что существует несколько вариантов управления ПК и FK в PharmaceuticalSupply. Он может иметь как ItemNo, так и DrugNo, где ItemNo является внешним ключом. В этом случае любой из них может быть основным ключом, но если DrugNo является основным ключом, то ItemNo, вероятно, должен быть уникальным индексом. Однако, если DrugNo не требуется из-за какого-то пользовательского формата, может быть полезно использовать ItemNo как PK, так и FK и полностью исключить DrugNo. Это приводит к «специализации», поскольку мир реляционной базы данных любит ссылаться на нее.

+0

Я сделал поиск по «специализации» для реляционной базы данных, и концепция, похоже, была тем, о чем я думал, когда я сделал подмножество PharmaceuticalSupply, но теперь возникает проблема реализации, потому что в реальной реализации реализации эту задачу сложнее реализовать. – user2866313