我正在尝试为以下问题找到最佳解决方案:需要设计一个数据库(基于postgres),其中包含触发器和计数器系统,这将形成一个有效查询,更新和存储信息的系统. '页面上显示的每篇文章(或博客条目,或类似的)中有多少未读评论.
无论是在查询,还是存储或更新部分,每个解决方案都有一些严重的缺点.即它需要太多的存储空间,或者太多的更新,或太多的数据库查询.
你的经历怎么样?也许这种问题已经形成了一个很好的解决方案?
我希望我的数据库支持其表中所有文本值的多语言.
那么这样做的最佳方法是什么?
EDIT1 ::
例如
我有这个"人"表:
ID int
FirstName nvarchar(20)
LastName nvarchar(20)
Notes nvarchar(max)
BirthDate date
...........
Run Code Online (Sandbox Code Playgroud)
所以,如果我希望我的程序支持新语言"让我说法语".
我应该在每次添加新语言时添加新列吗?所以我的"人"表看起来像这样
ID int
FirstName_en nvarchar(20)
FirstName_fr nvarchar(20)
LastName_en nvarchar(20)
LastName_fr nvarchar(20)
Notes_en nvarchar(max)
Notes_fr nvarchar(max)
BirthDate date
...........
Run Code Online (Sandbox Code Playgroud)
或者我应该为语言添加2个新表,为"Person_Languages"值添加其他表?
所以这看起来像:" 语言 "表:
ID int
Lang-symbol nvarchar(4)
Run Code Online (Sandbox Code Playgroud)
" 人 "表:
ID int
BirthDate Date
Run Code Online (Sandbox Code Playgroud)
最后是" Person_Translation "表:
LangID int
PersonID int
Translation nvarchar(max)
Run Code Online (Sandbox Code Playgroud)
.
database globalization database-design localization database-schema
在db design right方法中使用"view"还是应该处理代码端?有什么优点或缺点?
database-design view advantage-database-server database-schema
我有一个问题,Oracle Float双精度数据类型映射到Java双数据类型.使用Java Double数据类型时,hibernate架构验证程序似乎失败.
org.hibernate.HibernateException: Wrong column type in DB.TABLE for column amount. Found: float, expected: double precision
Run Code Online (Sandbox Code Playgroud)
避免这种情况的唯一方法是禁用模式验证,并希望模式与即将运行的应用程序保持同步.它必须在投入生产之前修复.
应用程序的环境:
- Grails 1.2.1
- Hibernate-core 3.3.1.GA
- Oracle 10g
我正在使用SchemaUpdate我hbms与现有数据库同步.数据库最近基于hbms并且完全是最新的.但是SchemaUpdate再次生成所有外键约束.
例如假设你有Student和Teacher.与名称Student有关联.是一个外键来.假设数据库是最新的并且当前是holde ,以及它们的外键关系.所以并且是等价的.知道不能做任何事情,但是当我看到它生成的脚本时,它会再次重新生成该外键.TeacherArtTeacherArtTeacherStudentTeacherStudentTeacherHBMDatabaseSchemaUpdate
为什么会这样?有什么办法可以避免吗?
基本上我想从当前连接的数据库获取表名和每个表的字段名,没有别的.
这可能吗?
我知道这SHOW TABLES FROM my_database会得到你的表名,并SHOW COLUMNS FROM my_table会得到你的字段,但这至少是[1 x#表]查询,我得到更多我想要的信息:)
我正在开发一种基因组学应用程序,目前正处于建立个体间关系的阶段.
根据我的研究,我注意到大多数关系的映射都是基于家庭(父亲和母亲),因此我想在盲目地采用它之前理解这背后的根本原因.
由于我的项目是父权制,我认为只要一个人加上父亲,就会创造一个新的家庭
Reddit目前正在将其数据库从PosgreSQL迁移到Apache Cassandra.有人知道Reddit在Cassandra中使用了什么数据库模式吗?
我使用postgresql开发了一个应用程序,它运行良好.
现在我需要创建同一个应用程序的多个实例,但我只有一个数据库.所以我正在考虑使用模式,以便我可以将每个实例表分组到不同的模式中.
现在,我不想重写我的所有函数和脚本,因此我想知道我是否可以使用一些指令来指示数据库对特定模式进行操作.只是为了让它更清楚,你知道用c ++做什么吗?
using namespace std;
Run Code Online (Sandbox Code Playgroud)
这样你可以用cout而不是std::cout?如果可能的话,我想使用类似的东西.
我正在研究一个项目.它主要用于学习目的,我发现实际上尝试复杂的项目是掌握基础知识后学习语言的最佳方式.数据库设计不是一个强项,我开始阅读它,但它的早期和我仍在学习.
这是我的alpha模式,即时通讯我只是想记下我能想到的一切,看看是否有任何问题跳出来. http://diagrams.seaquail.net/Diagram.aspx?ID=10094#
我想提出的一些问题需要反馈:
注意区域的核心属性,例如,简单地说,区域是厨房,卧室,花园,浴室和客厅.对于可能是主页,联系页面,about_us,启动画面的其他客户.它可能是2个区域,可能是100个,没有必要限制它.
我为默认值创建了单独的表,每个表都链接到一个bug.后来我来到了自定义字段的问题,如果有人想例如标记错误适用的主题,我们没有说,有可能是一个100其他的事情,所以我想坚持到一组核心属性和自定义字段给人灵活性.
然而,当我到自定义字段时,我知道我有一个问题,我不能为每个自定义字段创建一个表,所以我改为使用2个表.自定义字段和custom_field_values.这个想法是包含默认值的每个字段都将存储在此表中,并且每个字段都将链接到值表,这将只有这样的东西
custom_fields table
id project_id name
01 1 area(default)
12 2 rooms(custom)
13 4 website(custom)
custom_field_values table
id area project_id sort_number
667 area1 1 1
668 area2 1 2
669 area3 1 3
670 area4 1 4
671 bedroom 2 1
672 bathroom 2 2
673 garden 2 3
674 livingroom 2 4
675 homepage 4 1
676 about_us 4 2
677 contact 4 3
678 splash page 4 4
Run Code Online (Sandbox Code Playgroud)
这看起来像处理这样的动态字段的有效方式还是有其他替代方案?
默认值将是硬编码的,因此您可以使用它们或替换为您自己的默认值,或者我可以创建另一个表以允许用户编辑将链接到其项目的默认名称.任何反馈都是受欢迎的,如果计划中存在一些非常明显的问题,请随意批评.
mysql database-design relational-database database-schema entity-attribute-value
database-schema ×10
database ×3
mysql ×2
sql ×2
cassandra ×1
genealogy ×1
grails ×1
hibernate ×1
localization ×1
nhibernate ×1
php ×1
postgresql ×1
reddit ×1
schema ×1
validation ×1
view ×1