今天的问题更多地是一个,是否可能,我确定它是这样,我可能只是不知道正确的语法,因为我缺乏知识和经验。我浏览过网页,但像往常一样无法找到适用于回答我的问题的相关示例。计算列从另一个表中获取值基于当前表格的列值
所以我有四张桌子。
一个叫做Type。 一个叫做SubType。 一个叫做Model。
最后资产。资产应该存储上述每个ID。不过,我正在考虑自动化Type和SubType的计算方式。针对特定模型存储类型和子类型值。
所以如果我在资产中引用模型的ID。 有什么方法可以使用计算列从Model表中获取Type和SubType的值,并在Asset中自动计算它。 我正在寻找消除用户需要手动管理这些值。
这是我的代码,到目前为止,您将在资产表中看到,我现在只使用外键和ID。任何意见和协助表示赞赏!
CREATE TABLE AssetType
(
AssetTypeID TINYINT NOT NULL,
CONSTRAINT AssetTypeID PRIMARY KEY (AssetTypeID),
AssetTypeTitle VARCHAR(255) NOT NULL CONSTRAINT AssetTypeTitleUniqueConstraint UNIQUE
)
CREATE TABLE AssetSubType
(
AssetSubTypeID TINYINT NOT NULL,
CONSTRAINT AssetSubTypeID PRIMARY KEY (AssetSubTypeID),
AssetSubTypeTitle VARCHAR(255) NOT NULL CONSTRAINT AssetSubTypeTitleUniqueConstraint UNIQUE,
AssetSubTypeAssetTypeID TINYINT NOT NULL,
CONSTRAINT AssetSubTypeAssetTypeID FOREIGN KEY (AssetSubTypeAssetTypeID) REFERENCES AssetType(AssetTypeID)
)
CREATE TABLE Model
(
ModelID UNIQUEIDENTIFIER CONSTRAINT ModelIDDefault DEFAULT NEWSEQUENTIALID() NOT NULL,
CONSTRAINT ModelID PRIMARY KEY (ModelID),
ModelTitle VARCHAR(255) NOT NULL,
ModelManufacturerID UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT ModelManufacturerID FOREIGN KEY (ModelManufacturerID) REFERENCES Manufacturer(ManufacturerID),
ModelOrganisationID UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT ModelOrganisationID FOREIGN KEY (ModelOrganisationID) REFERENCES Organisation(OrganisationID),
CONSTRAINT ManufacturerUnique UNIQUE (ModelTitle, ModelManufacturerID, ModelOrganisationID),
ModelAssetTypeID TINYINT NOT NULL,
CONSTRAINT ModelAssetTypeID FOREIGN KEY (ModelAssetTypeID) REFERENCES AssetType(AssetTypeID),
ModelAssetSubTypeID TINYINT NOT NULL,
CONSTRAINT ModelAssetSubTypeID FOREIGN KEY (ModelAssetSubTypeID) REFERENCES AssetSubType(AssetSubTypeID),
ModelCITypeID TINYINT NOT NULL,
CONSTRAINT ModelCITypeID FOREIGN KEY (ModelCITypeID) REFERENCES CIType(CITypeID),
ModelCISubTypeID TINYINT NOT NULL,
CONSTRAINT ModelCISubTypeID FOREIGN KEY (ModelCISubTypeID) REFERENCES CISubType(CISubTypeID)
)
CREATE TABLE HardwareAsset
(
HardwareAssetID UNIQUEIDENTIFIER CONSTRAINT HardwareAssetIDDefault DEFAULT NEWSEQUENTIALID() NOT NULL,
CONSTRAINT HardwareAssetID PRIMARY KEY (HardwareAssetID),
HardwareAssetTitle VARCHAR(255) NOT NULL,
HardwareAssetAssetStatusID TINYINT NOT NULL,
CONSTRAINT HardwareAssetAssetStatusID FOREIGN KEY (HardwareAssetAssetStatusID) REFERENCES AssetStatus(AssetStatusID),
HardwareAssetAssetTypeID TINYINT NOT NULL,
CONSTRAINT HardwareAssetAssetTypeID FOREIGN KEY (HardwareAssetAssetTypeID) REFERENCES AssetType(AssetTypeID),
HardwareAssetAssetSubTypeID TINYINT NOT NULL,
CONSTRAINT HardwareAssetAssetSubTypeID FOREIGN KEY (HardwareAssetAssetSubTypeID) REFERENCES AssetSubType(AssetSubTypeID),
HardwareAssetAssetTag VARCHAR(255) NOT NULL CONSTRAINT HardwareAssetAssetTagUnique UNIQUE,
HardwareAssetSerialNumber VARCHAR(255) NOT NULL CONSTRAINT HardwareAssetSerialNumber UNIQUE,
HardwareAssetManufacturerID UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT HardwareAssetManufacturerID FOREIGN KEY (HardwareAssetManufacturerID) REFERENCES Manufacturer(ManufacturerID),
HardwareAssetModelID UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT HardwareAssetModelID FOREIGN KEY (HardwareAssetModelID) REFERENCES Model(ModelID),
)
代码是不完整的,我想,例如,'Model.ModelAssetTypeID'在哪里? –
你的'HardwareAsset.HardwareAssetAssetTypeId'会不同于'Model.ModelAssetTypeId'吗? – SqlZim
是在那里: ModelAssetTypeID TINYINT NOT NULL, 约束ModelAssetTypeID外键(ModelAssetTypeID)参考文献AssetType(AssetTypeID), – TheTechnicalPaladin