我刚刚开始使用SQL,所以不知道如何处理非标准数据类型。
我正在使用MySQL ...
假设有2个表格:统计数据和通用。 Common表如下所示:
CREATE TABLE Common (
Mutation VARCHAR(10) NOT NULL,
Deletion VARCHAR(10) NOT NULL,
Stats_id ??????????????????????,
UNIQUE(Mutation, Deletion) );
代替 ?符号必须具有某种在Stats表(
Stats.id
)上引用的类型。问题是,这种类型必须能够以以下格式保存数据:1..30(1到30之间的间隔)。根据这种类型,我的想法是缩短Common表的长度。
是否可以这样做,是否有其他不同的想法?
最佳答案
假定Stats.id
是INTEGER
(如果不是,请适当更改以下各项):
first_stats_id INTEGER NOT NULL REFERENCES Stats(id)
last_stats_id INTEGER NOT NULL REFERENCES Stats(id)
假设您的表包含两个VARCHAR字段和一个唯一索引,那么就内存使用而言,最少需要一个附加的整数字段(严重的是,一个整数字段仅代表2.62亿行的1GB内存)。