标签: database-schema

如何显示 SQL Server 表索引?

我需要列出/显示表中包含的所有聚集和非聚集索引。

如何使用 SQL Server 2008 R2 做到这一点?

sql-server indexing sql-server-2008-r2 database-schema

6
推荐指数
1
解决办法
8990
查看次数

将地址表链接到多个其他表

我被要求向我们的数据库(SQL Server 2012)添加一个新的地址簿表。

为了简化数据库的相关部分,存在三个表,每个表以一对多的方式相互链接: 公司(有许多) 产品(有许多) 项目 其想法是一个或多个地址将能够存在在这些级别中的任何一个级别。我们的想法是,在前端系统中,用户将能够查看和选择他们指定的项目的特定地址以及与其父产品和公司相关的更通用的地址。现在的问题是如何最好地在数据库中对此进行建模。

到目前为止,我已经想到了两种可能的想法,所以想知道是否有人有类似的关系来为自己建模以及他们如何实现它?

想法一: 新的地址表将额外包含三个字段:companyID、productID和projectID。这些字段将与相关表相关,并且可以为空以表示公司和产品级别地址。例如,companyID 2、productID 1、projectID NULL 是产品级别地址。我的问题是,我将关系信息存储在表中,因此如果项目更改为与不同的产品相关,则该表中的数据将不正确。我可能可以将除我感兴趣的级别之外的所有级别都设为 NULL,但这将使获取父地址变得有点困难

想法二: 在地址表上有一个typeID和一个genericID。genericID 可以包含来自公司、产品和项目表的 ID,其中 typeID 确定它来自哪个表。我有点困惑如何设置必要的约束来做到这一点,并且想知道将来这是否会变得棘手

非常感谢,

sql-server database-design database-schema

6
推荐指数
1
解决办法
2428
查看次数

我应该创建一个可以为空的外键还是创建一个新表?

我有一个关于如何设计数据库的小问题。我有一个动物收容所的桌狗,我有一个桌主人。所有现在和曾经在收容所的狗都被安置在餐桌狗中。现在我想在桌狗和桌主人之间建立联系。

问题是,在这个例子中,并不是所有的狗都有主人,并且由于一个主人可以有不止一只狗,所以应该在狗表中放置一个可能的外键(一只狗至少不能有多个主人)不在庇护所的管理范围内)。但如果我这样做,一些狗(收容所里的狗)的外键将为 null。阅读其他一些主题告诉我这是允许的。(或者我可能读错了一些主题)

然而,另一种可能性是在两个表之间放置一个表 - 例如“dogswithowners” - 如果狗有主人,则将两个表的主键都放在那里。

现在我的问题是(正如您可能已经猜到的)这两种方法中最好的方法是什么?为什么?

database database-design foreign-keys relational-database database-schema

6
推荐指数
1
解决办法
1277
查看次数

使用 SQLAlchemy 反映 postgres 数据库中的每个模式

我有一个现有的数据库,它有两个模式,命名为schools和students,包含在一个实例中,declarative_base并通过从该实例继承的两个不同类

class DirectorioEstablecimiento(Base):
    __table_args__ = {'schema': 'schools'}
    __tablename__ = 'addresses'
    # some Columns are defined here
Run Code Online (Sandbox Code Playgroud)

和

class Matricula(Base):
    __table_args__ = {'schema': 'students'}
    __tablename__ = 'enrollments'
    # some Columns are defined here
Run Code Online (Sandbox Code Playgroud)

我可以使用该Base实例Base.metadata.create_all(bind=engine)在我在 postgres 中拥有的测试数据库中重新创建它。如果我查询,我可以确认这是没有问题的pg_namespace

In [111]: engine.execute("SELECT * FROM pg_namespace").fetchall()
2017-12-13 18:04:01,006 INFO sqlalchemy.engine.base.Engine SELECT * FROM pg_namespace
2017-12-13 18:04:01,006 INFO sqlalchemy.engine.base.Engine {}

Out[111]: 
[('pg_toast', 10, None),
 ('pg_temp_1', 10, None),
 ('pg_toast_temp_1', 10, None),
 ('pg_catalog', 10, '{postgres=UC/postgres,=U/postgres}'),
 ('public', 10, …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy database-schema

6
推荐指数
1
解决办法
1693
查看次数

使用 mongodb 的聊天应用程序架构

我正在尝试为mongodb. 我有两种类型的用户模型 -Producer和Consumer. 生产者和消费者可以相互对话。我的最终目标是获取任何生产者和消费者的所有对话并将它们显示在列表中,就像所有消息传递应用程序(例如 Facebook)一样。

这是schema我想出的:

Producer: {
    _id: 123,
    'name': "Sam"
}

Consumer:{
    _id: 456,
    name: "Mark"
}

Conversation: {
    _id: 321,
    producerId: 123,
    consumerId: 456,
    lastMessageId: 1111,
    lastMessageDate: 7/7/2018
}

Message: {
    _id: 1111,
    conversationId: 321,
    body: 'Hi'
}
Run Code Online (Sandbox Code Playgroud)

现在我想取回 Sam 的所有对话。我想像 Facebook 一样将它们显示在列表中,将它们与每个消费者分组并根据时间进行排序。我想我需要为此做以下查询:

1) 获取123按 lastMessageDate 排序的所有对话。然后我可以显示所有对话的列表。

2)如果我想知道对话中的所有消息,我会查询消息并获取conversationId所在的所有消息 321

现在,对于每个 new message,我还需要conversation每次都使用新的 messageId 和 date 更新。考虑到所涉及的查询数量,这是正确的继续方式吗?有没有更好的方法可以继续执行此操作?任何帮助将不胜感激。

database mongodb database-schema

6
推荐指数
1
解决办法
6415
查看次数

多态关系与每种类型的单独表

我的工作其中有一些类型的数据库(如在User,Appointment,Task它可以有零个或多个等)Notes与每个类型相关联。

我遇到的实现这些关系的可能解决方案是:

  1. 多态关系
  2. 每种类型的单独表

多态关系

许多人认为这是遵循 Active Record 模式的框架最容易实现的解决方案,并且似乎是最常见的实现,我会添加一个表,其数据为morphable:

显着

Mynotable_type将允许我区分相关的类型 ( User, Appointment, Task) Note,而 thenotable_id将允许我获取type相关type表中的单个记录。

优点:

  • 易于扩展,可以轻松将更多模型与多态类关联
  • 限制表膨胀
  • 生成一个可供许多其他类使用的类 (DRY)

缺点

  • 随着数据的增长,更多类型会使查询变得更加困难和昂贵
  • 不能有外键
  • 缺乏数据一致性

每种类型的单独表

或者,我可以为每种类型创建一个表,该表仅负责Notes与该类型相关联。该type_id外键可以让我快速获取个人type记录。

用户备注

被许多在线人视为代码异味,许多文章主张避免多态关系而支持替代方案(例如此处和此处)。

优点:

  • 允许我们有效地使用外键
  • 高效的数据查询
  • 保持数据一致性

缺点:

  • 增加表膨胀,因为每种类型都需要一个单独的表
  • 结果在多个类中,每个类代表单独的type_notes表

想法

多态关系当然是两个实现选项中更简单的一个,但是缺少外键约束并因此潜在的一致性问题感觉是错误的。

每一个表notes的关系(user_notes,task_notes外键等)似乎是正确的方式(与设计模式保留),但可能会导致大量的表(除了其他types可有 …

mysql database-design polymorphic-associations database-schema laravel

6
推荐指数
1
解决办法
3093
查看次数

如何为以数组为值的对象(或字典)的属性定义领域模式?

我有这样的数据

PersonJSONData = {
    "key1": {
        "name": "odo",
        "age": 10,
        "favorites": {
            "food": ["rice", "chocolate", "sugar"],
            "game": [],
            "color": ["red"]
        },
    "key2": {
        "name": "yana",
        "age": 50,
        "favorites": {
            "band": [],
            "food": ["eggs"],
            "book": ["ABC", "how to cook"]
        }
    },
    ...
}}
Run Code Online (Sandbox Code Playgroud)

如何在realmfor中写入架构react native?

const personSchema = {
    name: "Person",
    properties: {
        name: string,
        age: int,
        // favorites: I don't know what to write here??
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用类型字典(“{}”),但它给了我一个错误:

[错误:混合属性不能包含值数组。]

当我使用“混合”类型时,我收到此错误:

[错误:仅支持领域实例。]

我需要为此创建一个对象类型吗?如果是这样,当我不确定收藏夹中的按键是什么时该怎么办?

这是我创建和编写实例的代码。

const …
Run Code Online (Sandbox Code Playgroud)

realm database-schema react-native realm-js realm-database

6
推荐指数
0
解决办法
2911
查看次数

如何在C#中创建将部署在DBO以外的模式中的CLR过程

我想创建一个将部署在DBO以外的模式中的SQL函数.

我发现了一个帖子,其中解释了构建后脚本的解决方法.

如何强制dbo架构名称?

我可以使用上面提到的解决方案,但我觉得应该有更文明的东西.一些参数设置可能或属性.

谢谢

c# sql clr schema database-schema

5
推荐指数
1
解决办法
621
查看次数

用于存储表单字段和字段值的数据库架构建议

我的任务是创建一个应用程序,允许用户将数据输入到将保存的Web表单中,然后最终用于填充pdf表单字段.

我很难想出一种将字段值存储在数据库中的好方法,因为表单将是动态的(基于pdf字段).

在应用程序本身中,我将在哈希表(fieldname,fieldvalue)中传递数据,但我不知道将哈希值转换为db值的最佳方法.

我正在使用MS SQL server 2000和asp.net webforms.有没有人在做类似的事情?

sql-server asp.net sql-server-2000 database-schema

5
推荐指数
1
解决办法
967
查看次数

是否有任何用于将xml架构转换为Linux数据库架构的开源工具?

是否有任何开源工具将xml架构转换为linux的数据库架构.我需要的是它应该读取xml架构,生成相应的数据库架构并使用它创建表.我试着谷歌,我能找到的只是xsd2db,用c#编写,但对我没用.我正在使用centos,我的数据库是postgresql.任何帮助表示赞赏.提前致谢.

linux postgresql xsd database-schema

5
推荐指数
1
解决办法
4106
查看次数