-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path02_Main_Structure.sql
More file actions
56 lines (51 loc) · 1.57 KB
/
02_Main_Structure.sql
File metadata and controls
56 lines (51 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
USE SmartHomeDB;
GO
CREATE TABLE Devices (
DeviceID INT PRIMARY KEY IDENTITY(1,1),
DeviceName VARCHAR(100) NOT NULL,
TypeID INT NOT NULL,
RoomID INT NOT NULL,
CurrentStatus VARCHAR(50) DEFAULT 'OFF',
IsActive BIT DEFAULT 1,
FOREIGN KEY (TypeID) REFERENCES DeviceTypes(TypeID),
FOREIGN KEY (RoomID) REFERENCES Rooms(RoomID)
);
GO
CREATE TABLE SensorReadings (
ReadingID BIGINT PRIMARY KEY IDENTITY(1,1),
DeviceID INT NOT NULL,
ReadingValue FLOAT NOT NULL,
Unit VARCHAR(20) NOT NULL,
RecordedAt DATETIME DEFAULT GETDATE(),
FOREIGN KEY (DeviceID) REFERENCES Devices(DeviceID)
);
GO
CREATE TABLE Scenes (
SceneID INT PRIMARY KEY IDENTITY(1,1),
SceneName VARCHAR(50) NOT NULL,
CreatedBy INT NOT NULL,
CreatedAt DATETIME DEFAULT GETDATE(),
FOREIGN KEY (CreatedBy) REFERENCES Users(UserID)
);
GO
CREATE TABLE SceneActions (
ActionID INT PRIMARY KEY IDENTITY(1,1),
SceneID INT NOT NULL,
DeviceID INT NOT NULL,
TargetStatus VARCHAR(50) NULL,
TargetValue FLOAT NULL,
FOREIGN KEY (SceneID) REFERENCES Scenes(SceneID),
FOREIGN KEY (DeviceID) REFERENCES Devices(DeviceID)
);
GO
CREATE TABLE AutomationRules (
RuleID INT PRIMARY KEY IDENTITY(1,1),
RuleName VARCHAR(100) NOT NULL,
TriggerDeviceID INT NOT NULL,
ConditionOperator VARCHAR(5) NOT NULL,
ThresholdValue FLOAT NOT NULL,
ActionSceneID INT NOT NULL,
FOREIGN KEY (TriggerDeviceID) REFERENCES Devices(DeviceID),
FOREIGN KEY (ActionSceneID) REFERENCES Scenes(SceneID)
);
GO