问题标签 [database-schema]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1179 浏览

jdbc - 处理对象数据库(如 db4o)中的数据维护

对于使用像db4o这样的对象数据库,我一直觉得很困惑的一件事是,您应该如何处理通常由 SQL/PL-SQL 处理的复杂迁移。

例如,假设您在关系数据库中有一个名为 my_users 的表。最初您有一个名为“full_name”的列,现在您的软件处于 V2 中,您希望删除此列,将全名拆分为空白并将第一部分放在名为“first_name”的列中,第二部分放在列中名为姓氏。在 SQL 中,我将简单地填充“first_name”和“second_name”列,然后删除名为“full_name”的原始列。

我将如何在 db4o 之类的东西中做到这一点?我是否编写了一个 Java 程序,该程序通过脚本查找 User.class 的所有对象,在设置 first_name 和 last_name 时将 full_name 设置为 null?当我进行下一次 svn 提交时,将没有与 full_name 对应的字段/bean-property,这会是一个问题吗?似乎在我的“模式”发生更改的生产应用程序中使用它我想编写一个脚本来将数据从版本 x 迁移到版本 x+1,然后在版本 x+2 中实际删除我正在尝试的属性摆脱版本 x+1,因为我无法编写 Java 脚本来修改不再属于我的类型的属性。

似乎问题的一部分是RDBMS根据简单的不区分大小写的基于字符串的名称解析您所指的对象,在Java之类的语言中,打字比这更复杂,如果getter不能引用属性/setter/field 不是在运行时加载的类的成员,因此您基本上需要在同一个脚本中拥有 2 个版本的代码(嗯,自定义类加载器听起来很痛苦),存储您的类的新版本属于另一个包(听起来很乱),或者使用我提到的版本 x+1 x+2 策略(需要更多计划)。也许有一些我从未从 db4o 文档中收集到的明显解决方案。

有任何想法吗?希望这有点道理。

0 投票
5 回答
7205 浏览

database-design - 帮助 CRUD 程序员思考“批准工作流程”

我一直在开发一个基本上是 CRUD 应用程序(创建、读取、更新、删除)的 Web 应用程序。最近,我开始研究我所说的“审批工作流程”。基本上,会为材料生成请求,然后将其发送给经理以供批准。根据请求的内容,不同的人需要批准请求,或者可能将其发送回请求者进行修改。批准者需要跟踪批准哪些内容已批准,请求者需要查看其请求的状态。

作为“CRUD”开发人员,我很难思考如何设计它。我应该有哪些数据库表?如何跟踪请求的状态?我应该如何通知用户他们的请求发生的操作?

他们的设计模式可以帮助我吗?我应该在我的代码中绘制状态机吗?

我认为这是一个通用的编程问题,但如果它有任何区别,我将使用 Django 和 MySQL。

0 投票
4 回答
5645 浏览

database-design - 为什么使用数据库视图?

是在数据库设计正确的方法中使用“视图”还是我们应该在代码端处理它?有什么优点或缺点?

0 投票
1 回答
877 浏览

database - postgresql重复表名最佳实践

我的公司有一些我们在我们构建的网站中部署的应用程序。最近,一个非常旧的应用程序需要与一个较新的应用程序一起包含,并且两个应用程序都需要使用重复的表名而发生冲突。

我们现在正在更新旧应用程序,并且会有一些数据库更新。我很好奇人们认为最佳实践(或者你是如何做到的)以帮助确保这些名称冲突不会发生。

我查看了架构,但不确定这是否是我们想要采取的正确道路。正如文档规定的那样,我不想将特定的模式名称“连接”到应用程序中,如果我将模式添加到用户搜索路径,如果两个模式具有相同的表名,它将如何知道我指的是哪个表。虽然,也许我读了很多。

任何见解或智慧之言将不胜感激!

0 投票
3 回答
3338 浏览

database-design - 需要帮助为批发在线 T 恤商店创建数据库架构

我目前正在网上批发 T 恤店。我已经以固定的数量和价格完成了此操作,并且工作正常。现在我需要为可变数量和价格执行此操作。

我正在尝试将我的设计基于此参考站点

我创建的基本表是:

我不明白如何根据可变数量存储价格。例如 -

请帮我创建产品及其相关表。我的要求与上面的参考链接相同。

0 投票
7 回答
76185 浏览

database - 如何在 Oracle 中找到指向一条记录的外键依赖项?

我有一个非常大的 Oracle 数据库,有许多表和数百万行。我需要删除其中一个,但要确保删除它不会破坏指向它作为外键记录的任何其他相关行。有没有办法获取指向该行的所有其他记录或至少表模式的列表?我知道我可以尝试自己删除它并捕获异常,但我不会自己运行脚本,并且需要它在第一次运行时运行干净。

我可以使用 Oracle 的 SQL Developer 和 AllRoundAutomations 的 PL/SQL Developer 工具。

提前致谢!

0 投票
3 回答
5189 浏览

sql - 在线协作模式设计(利用谷歌文档?)

我正在寻找一个在线的、协作的数据库模式设计器。应用程序专门用于 MySQL,但通用数据库设计器也很好。重要的是它可以处理修订(更改历史)。

这看起来很酷,我可以将它托管在服务器上 - 但看起来它不能处理多用户: http: //ondras.zarovi.cz/sql/demo/

目前我们在谷歌文档/电子表格上进行了大量的设计合作。有没有人使用谷歌电子表格进行架构设计取得任何成功?即使只有一个用于绘制线条/连接的小工具,我也可能会试一试 Google Docs。

0 投票
8 回答
26668 浏览

hibernate - 休眠:找到:浮点数,预期:双精度

我在将 Oracle Float 双精度数据类型映射到 Java Double 数据类型时遇到问题。当使用 Java Double 数据类型时,休眠模式验证器似乎失败了。

避免这种情况的唯一方法是禁用模式验证,并希望模式与即将运行的应用程序同步。它必须在投入生产之前修复。

应用程序的环境:
- Grails 1.2.1
- Hibernate-core 3.3.1.GA
- Oracle 10g

0 投票
2 回答
2872 浏览

postgresql - 如何设计用于存储多种语言文本的数据库模式?

我们有一个 PostgreSQL 数据库。而且我们有几个表需要以多种语言保存某些数据(幸运的是,可能的语言列表是在系统范围内定义的)。

例如让我们开始:

现在,让我们让它多语言。怎么样:

这对于 Postgres 中的全文搜索很有用。只需为每种语言添加一个 tsvector 列。

但它是最优的吗?也许我们应该使用另一个表来保存翻译?喜欢:

也许,只是也许,我们应该使用其他东西——SQL 世界之外的东西?任何帮助表示赞赏。

0 投票
2 回答
923 浏览

geolocation - 我应该使用什么类型的数据库架构来存储和使用地理位置数据?

我正在创建一个应用程序来存储特定交易的地理位置数据。我应该存储一个简单的纬度/经度还是有更首选的标准?我应该使用哪些数据类型来允许将来切换到 NoSQL?