没有数据库设计经验。我有以下情况: 一个包含5个条目的表。
<DeviceIdentificationstr, data1, data2, data3.... data 5>
一个表可以有多个设备信息。 我设计了这样的东西:
create table mytable (
sNo integer PRIMARY KEY,
DeviceIdentificationStr TEXT,
data1 integer,
data2 TEXT, ....)
考虑以下场景:
Record 1: 1, "Device1", "data1", 20, "data2", "data3"....
Record 2: 2, "Device2", "data1", 120, "data2", "data3"....
Record 3: 3, "Device2", "data1", 220, "data2", "data3"....
Record 4: 4, "Device1", "data1", 230, "data2", "data3"....
此处Device1
和Device2
一直在重复。
有没有其他方法来设计表格?或者这是唯一的出路?
另外,我需要查询类似::获取“Device1”的所有记录。
答案 0 :(得分:3)
您可以执行所谓的规范化:创建另一个表devices
:
CREATE TABLE devices (
device_id INTEGER PRIMARY KEY,
DeviceIdentificationStr TEXT,
DeviceMemory INTEGER,
-- add more fields that describe device properties...
);
将第一个表更改为:
CREATE TABLE mytable (
sNo INTEGER PRIMARY KEY,
device_id INTEGER,
data1 integer,
data2 TEXT,
...
)
现在,您可以使用联接来获取所需的信息,如下所示:
SELECT m.*,
d.DeviceMemory,
...
FROM mytable m
JOIN devices d USING (device_id)
WHERE d.DeviceIdentificationStr = 'mydevice'
答案 1 :(得分:-1)