数据库架构的目的是什么?我在哪里可以找到更多相关信息?它不是表,它不是数据库,它是什么?
我搜索了这个问题,但我不清楚什么是XML模式和DTD(文档类型定义),以及为什么XML模式比DTD更强大.
任何指导都将受到高度赞赏.
我想Employees在数据库中更改表的模式名称.在当前表Employees数据库模式名称是dbo我想要更改为exe.我该怎么做 ?
例:
从
dbo.Employees
Run Code Online (Sandbox Code Playgroud)
至
exe.Employees
Run Code Online (Sandbox Code Playgroud)
我试过这个查询:
ALTER SCHEMA exe TRANSFER dbo.Employees
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误:
无法更改架构'exe',因为它不存在或您没有权限.
我错过了什么?
这可能是一个类似(或更糟)的问题.但我一直将模式视为数据库中的表定义.这是错误的或不完全正确的.我对数据库课程的记忆不多.
是否有可视化预先存在的数据库模式的好工具?如果重要的话,我正在使用MySQL.
我目前正在使用MySQL Workbench来处理SQL创建脚本转储,但是它很笨拙,很慢并且是一个手动过程来拖动所有表(如果它不是那么慢就没关系).
你如何准备你的SQL增量?您是否手动将每个架构更改SQL保存到增量文件夹,或者您是否有某种自动化的差异化过程?
我对版本化数据库模式以及源代码的约定感兴趣.也许是一个预先提交的钩子来区分架构?
编辑:看到答案我想澄清一点,我熟悉使用增量运行数据库迁移的标准方案.我的问题是关于自己创建增量,最好是自动创建增量.
此外,版本控制适用于PHP和MySQL,如果它有所作为.(请不要使用Ruby解决方案).
我从旧的SQL Server(2000)导入了一堆表到我的2008数据库.所有导入的表都以我的用户名为前缀,例如:jonathan.MovieData.在表中,properties它jonathan列为db模式.当我编写存储过程时,我现在必须包含jonathan.在所有表名称之前,这是令人困惑的.
如何将所有表格更改为dbo而不是jonathan?
目前的结果: jonathan.MovieData
期望的结果: dbo.MovieData
我设法更改了我的项目名称,但如何更改此屏幕截图中显示的名称?

并且(请)不要传讲我应该总是从头开始重写的概念证明,这个POC非常整洁,我正努力做出一个不可能的最后期限:-)
我目前在为下面的文档创建架构时遇到问题.来自服务器的响应始终将"trk"字段值返回为[Object].不知怎的,我不知道这应该如何运作,因为我至少尝试过对我有意义的所有方法;-)
如果这有帮助,我的Mongoose版本是3.6.20和MongoDB 2.4.7在我忘记之前,将它设置为Index(2d)会很不错
原始数据:
{
"_id": ObjectId("51ec4ac3eb7f7c701b000000"),
"gpx": {
"metadata": {
"desc": "Nürburgring VLN-Variante",
"country": "de",
"isActive": true
},
"trk": [
{
"lat": 50.3299594,
"lng": 6.9393006
},
{
"lat": 50.3295046,
"lng": 6.9390688
},
{
"lat": 50.3293714,
"lng": 6.9389939
},
{
"lat": 50.3293284,
"lng": 6.9389634
}]
}
}
Run Code Online (Sandbox Code Playgroud)
猫鼬模式:
var TrackSchema = Schema({
_id: Schema.ObjectId,
gpx: {
metadata: {
desc: String,
country: String,
isActive: Boolean
},
trk: [{lat:Number, lng:Number}]
}
}, { collection: "tracks" });
Run Code Online (Sandbox Code Playgroud)
Chrome中"网络"标签的响应总是如此(这只是错误的trk部分):
{ trk:
[ [Object],
[Object], …Run Code Online (Sandbox Code Playgroud) 我正在尝试第一次创建一个Postgres数据库,所以这可能是一个愚蠢的问题.我为必须从我的php脚本访问数据库的db角色分配了基本的只读权限,我有一个好奇心:如果我执行
GRANT some_or_all_privileges ON ALL TABLES IN SCHEMA schema TO role;
Run Code Online (Sandbox Code Playgroud)
是否还需要执行
GRANT USAGE ON SCHEMA schema TO role;
Run Code Online (Sandbox Code Playgroud)
?
来自文档:
用法:对于模式,允许访问指定模式中包含的对象(假设还满足对象自己的权限要求).从本质上讲,这允许被授权者在模式中"查找"对象.
我认为如果我可以选择或操作模式中包含的任何数据,我可以访问模式本身的任何对象.我错了吗?如果没有,GRANT USAGE ON SCHEMA用于什么?文档的含义与"假设对象的特权要求也得到满足"完全相同"?
schema ×10
database ×5
sql ×3
mysql ×2
sql-server ×2
definition ×1
dtd ×1
geo ×1
grant ×1
mongodb ×1
mongoose ×1
node.js ×1
postgresql ×1
t-sql ×1
versioning ×1
xcode ×1
xml ×1