javascript - 在 SQL 中创建模式的最佳方式

标签 javascript mysql sql node.js bash

我想就我的后端流量寻求帮助。

我现在开始使用 SQL,并且我有一些 noSQL 数据库的背景知识,但我不太了解 SQL,所以我在寻找如何注册我的模式时遇到了一些麻烦。

我正在使用 node-mysql ,我可以创建模式的方式是调用方法查询,例如:

myInstance.query(    'CREATE TABLE users (
  id       INT PRIMARY  KEY  AUTO_INCREMENT,
  name     VARCHAR(100) NULL NULL,
  email    VARCHAR(100) NULL NULL,
  password VARCHAR(100) NULL NULL
)');

此解决方案的问题是:此代码将在每次服务器初始化时运行。

所以,我想知道如何检查架构是否已经存在,并且..这是一个好的解决方案吗?我在考虑创建所有模式的 bash 脚本,我不需要这些 if 语句。

谢谢。

最佳答案

您所说的“模式”实际上是一个“表”。因此,create table 语句,而不是 create schema。这个非常重要。也许这部分documentation将帮助您理解其中的区别。

有四种截然不同的结构:

  • 数据库服务器——您如何连接到一个或多个数据库
  • 数据库实例——一组对象,通常是一个备份和存储单元
  • 模式——一组对象(可能在数据库中),通常是一个权限单元
  • 表——存储数据的地方

请注意,不同的数据库系统在这些方面略有不同。

当然,“表”是有schema的,这也是容易混淆的原因。

通常,数据库的管理与用户应用程序分开处理。也就是说,DBA(也可能是开发人员)将创建数据库、管理访问、处理备份/恢复和其他事情。应用程序将简单地连接到数据库并假定正确的表和数据就在那里。

也就是说,在大多数情况下,您不会在应用程序代码中创建表。只需使用应该已经为您的数据库创建的表。

关于javascript - 在 SQL 中创建模式的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34859747/

相关文章:

sql - ORA-00934 : group function is not allowed here 00934. 00000 - "group function is not allowed here"

javascript - jQuery div removeClass()/addClass()

sql - 如何在 Visual Studio 中设置 SQL 数据库项目中的数据库连接字符串?

javascript - 如何将值传递给组件以删除表行? ReactJS 和 Material UI

asp.net - 允许零日期时间 mysql 连接器 web.config Entity Framework

mysql - 如何在MySQL中计算具有特定值的行(ID)并排除相同ID是否具有其他值?

Mysql内连接和过滤结果

sql - 水平计数和垂直计数哪个更快?

javascript - 最佳实践 - BackBone JS - 模型 View 关系

javascript - 使用 javascript 进行表单验证。仅接受文本区域中的文本