标签: database-schema

论坛帖子投票/观看的数据库模式,以及递增和显示视图数量的策略

如果现在重要的是我正在使用MySQL/MyISAM,但我愿意使用PostgreSQL.我也愿意使用memcached.

考虑一个用于存储论坛帖子的表格:

id forum_name post_date
1  Hey!       2009-01-01 12:00:00
Run Code Online (Sandbox Code Playgroud)
  • 存储与线程相关的实体(如投票,视图和计数器)的最佳做法是什么?

我是不是该..

创建一个单独的表,如

id thread_id views
1  1         532
Run Code Online (Sandbox Code Playgroud)

或者将它保存为初始线程表中的列?

id forum_name post_date              views
1  Hey!       2009-01-01 12:00:00    532
Run Code Online (Sandbox Code Playgroud)

另一个相关的小窍门,显示和增加页面浏览量的实用解决方案是什么?我读了这个帖子,似乎我只能缓存一段时间的值,我对增量部分并不十分清楚 - 也许就像将值存储在某个地方的平面文件中,然后定期用cronjobs更新数据库论坛视图每小时左右?

编辑: 澄清一下,投票就像SO一样,每个帖子一票,并且可以有逆转.没关系我对柜台的意思.

mysql sql database-design data-modeling database-schema

2
推荐指数
1
解决办法
3369
查看次数

从 C# 确定 SQL Server 数据库列的默认值

我需要从 .Net 查找 SQL Server 2005 或 2008 数据库中列的默认值。

我的第一次尝试是执行存储过程:

sp_help @objname
Run Code Online (Sandbox Code Playgroud)

@objname桌子在哪里。然后在返回的第七个表(约束表)中,我将使用constraint_keys默认约束的值。当我从 SQL Server Management Studio 运行此查询时,它的行为符合预期,但当我从 C# 代码运行它时,该constraint_keys列为空(尽管所有其他列都已填充)。

我的第二次尝试是使用:

SELECT name, [text]
FROM syscomments com
    INNER JOIN syscolumns col ON com.id = col.cdefault
WHERE col.id = object_id(@Table)
    AND col.cdefault > 0
Run Code Online (Sandbox Code Playgroud)

这在 SQL Server Management Studio 中也可以正常工作。然而,当我从 .Net 运行它时,它不返回任何行。

额外的:

.Net 代码示例(使用企业库):

    private DataTable GetDefaults(string tablename string database)
    {            
        var db = DatabaseEL.Create(database);

        string sql = @"
            SELECT name, [text]
            FROM syscomments com …
Run Code Online (Sandbox Code Playgroud)

.net c# t-sql sql-server database-schema

2
推荐指数
1
解决办法
3688
查看次数

在mysql中表示n位无符号整数

我如何在 mysql 中表示这些数据?

16 bit unsigned integer -----Range: 0x0000 - 0xFFF7
64 bit unsigned int.  Depicted as xx:xx:xx:xx:xx:xx:xx:xx -----Range: 0x0000 - 0xFFFFFFFFFFFFFFFF
2 bits ----- 00 - None,  01 - Residential  Security,  10 - High Security
32 bit unsigned int
Run Code Online (Sandbox Code Playgroud)

我应该将所有内容转换为字符串并在应用程序层转换吗?

mysql database-schema unsigned-integer

2
推荐指数
1
解决办法
4861
查看次数

私人消息的数据库架构

我正在尝试在 Rails 中实现私人消息传递系统,并且需要数据库设计方面的帮助。我已经阅读了周围的内容,并提出了许多有效的替代方案,但我想知道是否有人知道这样一个最终可扩展的模式。我感谢任何帮助或链接。

编辑:数据库模式基本上有两件事

1.主题

2.留言

我正在考虑实施两个表

留言

主题文本

发件人ID

接收者id

有很多文本

文本

内容文本

我对数据库模式一点也不擅长,但我很感谢我在学习时的帮助

mysql sql database-design database-schema

2
推荐指数
1
解决办法
5000
查看次数

两人游戏的数据库架构

让我们进行一场由两名球员(或球队)进行的比赛,其中结果由两名球员的得分表示(例如足球)。是否有一种惯用的方式将此类游戏的结果存储在关系数据库中?

我想出了两种可能的模式,但似乎都不够通用。

1. 每场比赛一排

将有一个games带有列的表格,game_id, winner, loser, winner_points, loser_points每个游戏将存储在表格的一行中。

  • 当需要遍历所有游戏时,这种表示非常有用。
  • 计算球员的统计数据很困难(例如计算球员的平均分数)

2. 每场比赛两排

将有一个games带有列的表game_id, player, opponent, player_points, opponent_points。每个游戏将存储在表的两行中,并且它们将具有相同的game_id.

  • 遍历所有游戏并非微不足道,但仍然很容易
  • 计算球员的平均分很简单 SELECT AVG(player_points) FROM games WHERE player = some_player
  • 不幸的是,表中的数据现在是多余的

sql database-schema

2
推荐指数
1
解决办法
2840
查看次数

Postgres 仅向用户授予 SELECT 和 UPDATE 权限

谁能告诉我如何在 postgresql 上授予用户(用户名:restricted_user)仅具有 SELECT AND UPDATE 权限?我运行的是centos。

目前用户无法选择任何内容。我已经登录到 phpPgMyAdmin,我似乎只能为有效的用户授予每个表的 SELECT 和 UPDATE 权限,但我想将此规则应用于所有数据库中的所有表。

谢谢

database postgresql privileges database-schema

2
推荐指数
1
解决办法
7969
查看次数

Count(*) 与 sys.partitions 中的行不同

我使用以下查询来获取有关数据库中所有表的信息:

SELECT 
    t.NAME AS TableName,
    i.name as indexName,
    sum(p.rows) as RowCounts,
    sum(a.total_pages) as TotalPages, 
    sum(a.used_pages) as UsedPages, 
    sum(a.data_pages) as DataPages,
    (sum(a.total_pages) * 8) / 1024 as TotalSpaceMB, 
    (sum(a.used_pages) * 8) / 1024 as UsedSpaceMB, 
    (sum(a.data_pages) * 8) / 1024 as DataSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
WHERE 
    t.NAME NOT LIKE 'dt%' AND
    i.OBJECT_ID > …
Run Code Online (Sandbox Code Playgroud)

sql sql-server database-schema

2
推荐指数
1
解决办法
6185
查看次数

Cloudkit 中的即时模式

我想为我的应用程序使用 cloudkit 的私有数据库,所以为了设计,我正在寻找可以轻松将我的模型类映射到 cloudkit 的东西,而无需任何额外的努力。

所以我在苹果文档中发现了一些有趣的东西,

在开发过程中,使用 CloudKit API 创建架构很容易。将记录对象保存到数据库时,会自动为您创建关联的记录类型及其字段。此功能称为即时模式,仅当您使用商店中出售的应用程序无法访问的开发环境时才可用。例如,在开发过程中,您可以使用存储在属性列表中的测试记录填充 CloudKit 数据库。

但是我无法完全理解相同的概念,或者无法找到任何可靠的教程来实现这一点。

database-schema ios cloudkit cloudkit-environments swift3

2
推荐指数
1
解决办法
282
查看次数


如何删除postgres中特定模式中的每个表?

如何删除特定架构中的所有表?只应删除架构中的表。我已经有了用下面的代码获取的所有表名,但是如何删除所有这些表?

下面是一些psycopg2代码,下面是生成的SQL

writeCon.execute("SELECT table_name FROM information_schema.tables WHERE table_schema='mySchema'")
Run Code Online (Sandbox Code Playgroud)

SELECT table_name FROM information_schema.tables WHERE table_schema='mySchema'

sql postgresql drop-table database-schema

2
推荐指数
1
解决办法
777
查看次数