我刚刚开始使用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.idINTEGER(如果不是,请适当更改以下各项):

first_stats_id INTEGER NOT NULL REFERENCES Stats(id)
last_stats_id  INTEGER NOT NULL REFERENCES Stats(id)


假设您的表包含两个VARCHAR字段和一个唯一索引,那么就内存使用而言,最少需要一个附加的整数字段(严重的是,一个整数字段仅代表2.62亿行的1GB内存)。

10-07 19:04
查看更多