Tag: 数据库

有外键作为主键是好的吗?

我有表“用户”(用户名,密码)和表“configuration文件”(profileId,gender,dateofbirth,…)。 目前我正在使用这种方法:每个configuration文件logging都有一个名为“userId”的字段作为链接到用户表的外键。 当用户注册时,他的个人档案logging是自动创build的。 我对我的朋友build议感到困惑:将“userId”字段作为外键和主键,并删除“profileId”字段。 哪种方法更好?

selectNOT IN多列

我需要实现以下查询 SELECT * FROM friend WHERE ( friend.id1, friend.id2 ) NOT IN (SELECT id1, id2 FROM likes) 但是不能在多列上实现。 我如何编写这个查询

生成人类可读/可用,简短但唯一的ID

每天需要处理> 1000但是<10000条新logging 不能使用GUID / UUID,自动递增数字等 理想情况下应该是5或6个字符长,当然可以是阿尔法 希望重用现有的,众所周知的algorithm,如果可用的话 什么都有

使用Rails在不同的数据库迁移比标准的“生产”或“开发”

我有一个rails项目运行,它定义了config / database.yml中的标准生产::development和test DB连接 另外我有一个quiz_development:和quiz_production:定义指向一个不同的主机/数据库/用户/密码 我现在的目标是定义一个使用“ quiz_#{RAILS_ENV }`”作为其数据库configuration的迁移。 我所尝试过的(并失败了): 在迁移文件中设置ActiveRecord :: Base.connection 在rails中更改db:migrate任务,在那里设置ActiveRecord :: Base.connection 题: 我如何使耙db:迁移使用其他数据库定义? 谢谢,弗兰克

使用CSV存储引擎直接从CSV文件创buildmysql表?

我刚刚了解到,Mysql有一个本机CSV存储引擎 ,它将数据存储在每个表的逗号分隔值文件中。 是否可以直接从上传的CSV文件创build表格,如下所示: 创build表用户<PATH / USERS.CSV users.csv是由用户上传的?

在数据库中使用整数列来存储美国邮政编码是个好主意吗?

从乍一看,它会出现我有两个基本的select存储邮政编码在数据库表中: 文本(可能是最常见的),即char(5)或varchar(9)来支持+4扩展名 数字,即32位整数 如果我们假设没有国际关注的话,两者都能满足数据的要求。 过去我们通常只是走文字路线,但我想知道是否有人做相反的事情? 仅仅从简单的比较看来,整数方法有两个明显的优点: 就其本质而言,它只能自动地限于数字(而没有validation,文本样式可以存储字母,而且据我所知,这些字母在邮政编码中是无效的)。 这并不意味着我们可以/将/应该放弃validation用户input正常,但! 占用4个字节(即使是9位邮政编码也应该足够多),而不是5或9个字节。 另外,它似乎不会伤害显示输出很多。 在数字值上打一个ToString()是很简单的,使用简单的string操作为+4扩展插入一个连字符或空格,或者使用string格式来恢复前导零。 有没有什么会阻止使用int作为美国邮政编码的数据types?

Oracle DB:我怎样才能写查询忽略大小写?

正如我写的标题,我有SQL查询,在Oracle DB上运行,可以说: SELECT * FROM TABLE WHERE TABLE.NAME Like 'IgNoReCaSe' 如果我愿意,那个查询会返回“IGNORECASE”,“ignorecase”或者它们的组合,那么这个怎么做呢? 这可能吗?

如何从DJango的SQLite3中删除一个表?

我做了一个模型,并运行python manage.py syncdb。 我认为,在数据库中创build一个表。 然后我意识到我已经错误地创build了一个列,所以我改变了它,并运行了相同的命令,认为它会删除旧表,并添加一个新的表。 然后,我去了python manage.py shell,并试图运行.objects.all(),并失败,说该列不存在。 我想清除旧的表,然后再次运行syncdb,但我不知道如何做到这一点。

MYSQL 5.7中的原生JSON支持:MYSQL中的JSON数据types有哪些优缺点?

在MySQL 5.7中,添加了用于在MySQL表中存储JSON数据的新数据types。 这显然是MySQL的一个很大的变化。 他们列出了一些好处 文档validation – 只有有效的JSON文档可以存储在JSON列中,因此您可以自动validation您的数据。 高效的访问 – 更重要的是,当您将JSON文档存储在JSON列中时,不会将其存储为纯文本值。 而是以优化的二进制格式存储,以便更快地访问对象成员和数组元素。 性能 – 通过在JSON列中的值上创build索引来提高查询性能。 这可以通过虚拟列上的“function索引”来实现。 方便性 – JSON列的附加内联语法使得在SQL中集成文档查询变得非常自然。 例如(features.feature是一个JSON列): SELECT feature->"$.properties.STREET" AS property_street FROM features WHERE id = 121254; 哇 ! 他们包括一些伟大的function。 现在操作数据比较容易。 现在可以在列中存储更复杂的数据。 所以MySQL现在用NoSQL来调味。 现在我可以想象一个类似于JSON数据的查询 SELECT * FROM t1 WHERE JSON_EXTRACT(data,"$.series") IN ( SELECT JSON_EXTRACT(data,"$.inverted") FROM t1 | {"series": 3, "inverted": 8} WHERE JSON_EXTRACT(data,"$.inverted")<4 […]

为什么在为数据库devise关系时应该避免循环?

有人告诉我,在数据模型中设置循环是不好的devise。 我已经听了几次,但没有太多注意。 例如你有实体用户,项目,活动。 项目由用户拥有,所以我们有从用户到项目的一对多关系。 可以将活动分配给单个用户,这是用户与活动之间的另一个一对多关系。 当然,一个项目是由一组活动定义的,也就是Project to Activity之间的另一个一对多的关系。 这样就形成了一个循环。 我问这个家伙为什么这个devise不好,但他告诉我他也不知道,他也被告知,猴子学习最好。 我尝试search,但我想我没有使用正确的话,但是这对我来说似乎应该是试图devise一个数据库的人的根本。 那么,任何人都可以指出我有关er / db图中的循环/循环的一些有用的信息,是否应该避免?