R(HIJKLMNO)
L -> MNO
HI -> JKLMNO
J -> KL
K -> H
Run Code Online (Sandbox Code Playgroud)
嗨是一把钥匙。
因此,H 是一个素属性。
但是,H也属于非关键部分。
这个关系中的素数和非素数属性是什么?
我正在创建一个与 Discord 具有类似角色和权限系统的应用程序。
基本上
我不知道如何设计这样的系统。最初,我想我应该有一个roles表,对于每个权限都会有一个布尔列,例如:can_change_nickname。
但这似乎不太正确...
如果您有任何推荐的读物,或者可以提供详细说明为什么这样做的答案,我将非常感激。
USER是 1 个或多个的成员GROUPSGROUP可以有 1 个或多个ROLESROLE可以有 1 个或多个PERMISSIONSUSER只能PERMISSION通过将 aROLE与这些 一起分配来获得PERMISSIONS。GROUP将根据应用程序提供的功能和内容类型共享通用权限ROLES可以共享相同的PERMISSIONS。所以看起来我需要一个角色和权限的表。现在我只需要找到PERMISSIONS表格的样子。
我创建了一个blog表,其中有一个名为的字段views_count,但我听说更新views_count每个页面视图上的字段很麻烦。所以我现在创建了一个单独的视图计数表,如下所示:
views:
id,
blog_id,
ip_address,
counter
Run Code Online (Sandbox Code Playgroud)
现在我将独特的访问存储在views表中。当我在视图表中保存记录时,我也会更新blog字段views_count字段,那么这是一个好方法吗?或者有更好的选择吗?
完整创建架构:
CREATE TABLE `video_blog` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`category_id` int(11) UNSIGNED DEFAULT NULL,
`title` varchar(255) NOT NULL,
`sub_title` varchar(255) DEFAULT NULL,
`slug` varchar(255) NOT NULL,
`video_embed_code` text,
`video_thumbnail` varchar(255) DEFAULT NULL,
`video_thumbnail_alt` varchar(255) DEFAULT NULL,
`description` text,
`views` int(11) UNSIGNED NOT NULL,
`is_active` tinyint(1) UNSIGNED NOT NULL DEFAULT '1',
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY …Run Code Online (Sandbox Code Playgroud) 假设我要在 SQL Server 中恢复备份(2 GB),我的磁盘中有足够的空间(20 GB),但是 SQL Server 是否遵循任何算法来计算所需的最小磁盘空间或只是随机检查磁盘空间和备份才能成功恢复。
因为我想了解SQL Server的内部工作原理。
提前致谢。
假设您有 2 个不同的实体:
PersonalNote 也可以被视为仅与您自己共享的 SharedNote。因此,它们的数据库模式可以相同或几乎相同。
这种语义差异是否足以证明每个数据库表都需要一个单独的数据库表,或者最好将两者合并到同一个数据库表中,因为它们的模式可以相同(其中一个有一个 NULL 字段)?
两个表的一个缺点是有很多看起来相似的代码和几乎相同但独立的数据类。我认为一张桌子的一个缺点是性能。
我已经考虑这个问题有一段时间了,但我无法决定选择哪个。也许我也错过了一些重要的东西。这里最好的选择是什么?
假设我有一个像 Users 这样的表,它有一个 id 和一个 company_id,我想创建一个第二个表,其中有一对用户 id 的 ex: (primary_key_id, user1_id, user2_id)。
这些用户对的用户 ID 必须位于同一公司。
如何向我的数据库添加约束以实现此要求?
假设我的 PostgreSQL 实例突然异常停止,并且数据是脏的并且没有保存在 RAM 或 WAL 中。那样的话会发生什么?
我可以从哪里恢复这些数据?如果服务器也关闭,在这种情况下脏数据会发生什么?
是否有任何单独的文件来存储脏数据以进行恢复?
postgresql database-design postgresql-performance postgresql-13 postgresql-14
听说只能有一个聚集索引?我可能错了,但我确定我在某个地方读过。
在我的 SQL Server 2005 表之一中,我有以下列:
SerialNum ------- BigInt -------- 主键
区-------- nvarchar(50)
SchemeType ------ nvarchar(50)
当我使用 SQL Server Management Studio 在设计模式下打开表时,我注意到为District启用了聚集索引属性,而为SchemeType禁用了它。
如果只能有一个聚集索引,那么为什么在SerialNum已定义为主键的情况下,District 还要启用此属性?
如果可以有更多的聚集索引,那么如何为SchemeType列启用此属性?
我有一个过程,它遍历数据库中的所有对象并为它们分配适当的权限给该对象。我想知道是否有更好的方法来做到这一点?我使用模型数据库来创建新数据库,因此每次创建新数据库时都必须运行它。这是它的外观的一个想法(注意:从一开始就丢失了一个块,它会删除所有用户并重新创建必要的用户;自从 SID 更改后,这是必要的):
CREATE PROCEDURE usp_SetPermissions
AS
BEGIN
DECLARE @CurrentId INT
DECLARE @ObjectName NVARCHAR(128)
DECLARE @Message NVARCHAR(160)
DECLARE @Error INT
DECLARE @Sql NVARCHAR(256)
CREATE TABLE #tmpDbObjects
(
ID INT IDENTITY(1,1),
ObjectName NVARCHAR(128),
Completed BIT
)
INSERT #tmpDbObjects(ObjectName, Completed)
SELECT DISTINCT [Name], 0 As Completed
FROM sys.objects
WHERE [type] = 'U' AND is_ms_shipped <> 1
WHILE EXISTS (SELECT 1 FROM #tmpDbObjects)
BEGIN
-- Pick first uncompleted object
SELECT TOP 1 @CurrentId = ID,
@ObjectName = ObjectName
FROM #tmpDbObjects
-- Grant permissions …Run Code Online (Sandbox Code Playgroud) database-design ×10
mysql ×3
postgresql ×3
sql-server ×3
backup ×1
constraint ×1
disk-space ×1
index-tuning ×1
relations ×1
restore ×1
schema ×1
security ×1
table ×1