Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >避免使用动态表名,但如何使用?

避免使用动态表名,但如何使用?
EN

Stack Overflow用户
提问于 2013-07-25 16:15:01
回答 1查看 184关注 0票数 0

我对数据库设计很陌生,我正试图尽早进入最佳实践。到目前为止,我所看到的所有地方似乎都有这样一种协议:“在开发开始时创建表名,并插入数据,不要为表名使用变量。好吧,我在寻找一个资产管理系统,但我无法克服似乎是一个设计缺陷。如果您熟悉的话,这个软件将非常类似于"quickbase”。

这是一个场景。

  • 用户可以创建帐户,每个帐户都在一个帐户表中,其中的数据链接到其他相关表。
  • 在每个帐户中,有许多需要跟踪的信息,如:。
    • 金融学
    • 旅行
    • 任务

现在,这些类别中的每一个都将保存大量的信息,并且需要它自己的表。显然,我可以使用关系将这些表连接回帐户,但它们是一个问题(我认为)。用户可以根据需要创建任意数量的帐户,而且每次他们创建帐户时都需要与其一起创建的许多其他表。如"account_name_financials_table“等。

因此,我的问题是:在动态创建表名时,不使用变量可以做到这一点吗?或者,在创建表名时,使用变量作为表名是可以接受的。

如果这是局部的或模糊的,请让我知道,我会提供任何进一步的细节需要。

谢谢您抽时间见我

编辑

作为对大卫的回答的回应。

现在我完全理解了,每个帐户实际上只是一个条目,或者是一个表中的一行,它保存了每个帐户的信息。然后,列名将描述描述我的帐户并随后与其他表相关的数据。

现在这个问题的核心是,当我创建帐户时,还有其他表需要创建,或者至少我认为它们需要创建。例如,这将是一个财务表,其中包含有关该账户财务状况的具体信息。这些表上有一对一的关系。这意味着账户A只能有一套特定账户的财务数据。因此,当我创建帐户B时,我目前拥有的金融类表将不再有相关的列名、行或帐户B的数据。因此,当我为账户B创建这些新表时,它们可能更需要动态地执行。这么说,我如何在没有变量名称的情况下创建它们?

或者我还没说到重点。我突然想到,也许我可以有一个大的财务表,它保存着所有帐户的信息,并且信息是通过'id‘或其他唯一的fk标识符来定义/关联到特定帐户的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-25 16:38:28

不要将表视为域中的实体,而是将其视为描述实体的定义,而该表中的每条记录都是该实体的实例。

鉴于此,这一说法变得不正确:

用户可以创建帐户,每个帐户都是自己的表。

Account (或Accounts,取决于您的命名约定)表是描述帐户实体的原理图定义。它可能有类似于帐户名称、注册日期之类的列。Account表中的每个记录都是一个帐户。因此,将有一个Account表,它保存域中的所有帐户。

在每个帐户中都有4-8个可跟踪的目录。

这种说法在描述关系数据时似乎有点违背直觉。不如:

每个帐户还可以有与其相关的其他数据,例如.

下面的几行描述的不是“帐户内部”的内容,而是与帐户相关的域中的另一个实体:

  • 金融学
  • 旅行
  • 任务
  • 等。

每个帐户本身都是一个实体(或者无论如何,目前的术语有点模糊),它们不一定描述一个帐户,但它们本身由一个帐户来描述。也就是说,一个帐户不会指向一个任务。任务指向一个帐户。帐户本身是描述任务的数据点。

因此,其中每一个都成为表本身,其中的记录有返回Account表的外键。像这样简单的事情:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Task
----------------------
ID          | int
AccountID   | int
Description | nvarchar
ScheduledOn | datetime

诸若此类。该表中的每个记录(每个记录代表域中的一个任务)将包括一个AccountID值,该值指示哪个帐户拥有该任务。

这些表应该是特定于任何特定实体子集的,但对于该特定实体的所有实例都应该是通用的。

您可以通过子类型表将实体进一步定制为不同的类型。例如,您可能有不同类型的帐户,并且有不同的字段来描述它们。您可能有一个Account表,如上面所示,但是会有额外的表,其中主键也是Account表的外键。这些表表示到Account表的一对一关系,并且可以向帐户的“子集”添加更多的值。例如,一张这样的桌子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PreferredAccount
---------------------
AccountID       | int (PK, also FK to Account.ID)
PreferredStatus
BecamePreferredOn

诸若此类。这样,您就可以在逻辑上按类型分隔帐户,而不必创建多个表来表示帐户本身。

回到问题上..。最终,当用户创建帐户时,不会更改数据库的架构。他们只是在表中添加一条记录。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17870877

复制
相关文章
深入理解python类的实例变量和类变量
a = aa()     #将a投入aa这个类中,进行实例化# print a.add()   #这个结果显然易见# #下边两条指令各起何作用?结果是输出两个 20 么?还是两个13?还是? aa.w = 20   
py3study
2020/01/09
1.4K0
Python类变量和实例变量区别
类变量:定义在类里面,通过类名或对象名引用,如果是通过对象名引用,会先找有没有这个同名的实例变量,如果没有,引用到的才是类变量,类变量的更新,只能通过类名,形如 类名.a = 55 ,不要指望通过实例引用类变量来更新类变量
王大力测试进阶之路
2019/10/25
1.5K0
python类成员变量和实例成员变量
print 'need %f hour(s)'% (distance/self.speed)
用户7886150
2020/12/20
1.4K0
java中类变量和实例变量的实质区别
相对于static(静态的)或说类的, 本章开始提到的都是instance(实例的)或说对象的。 每个对象都有自己的一份儿对象域或实例域,相互之间没关系, 不共享。 我们可以从对象中访问实例变量。
马克java社区
2021/03/15
2K0
java中类变量和实例变量的实质区别
【说站】python类变量和实例变量的对比
1、类变量是所有对象共有的,其中一个对象改变其价值,其他对象得到的是改变后的结果。
很酷的站长
2022/11/23
8290
【说站】python类变量和实例变量的对比
Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
https://www.cnblogs.com/poloyy/p/15178423.html
小菠萝测试笔记
2022/03/23
1.4K0
Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
Python面向对象编程-类和对象-实例变量和类变量
实例变量是指属于特定对象的变量。每个类的实例都具有自己的实例变量,它们的值可以不同。在上面的示例中,Person 类的 name 和 age 属性都是实例变量,因为它们属于特定的 Person 对象。
玖叁叁
2023/04/19
8470
Python面向对象中的类变量,实例变量怎么来理解?
前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。
前端皮皮
2022/08/17
1.7K0
Python面向对象中的类变量,实例变量怎么来理解?
JAVA——类的定义及其实例化
1.Java中的类 类可以看成是创建Java对象的模板 修饰符 class 类名{     修饰符 数据类型 属性名(成员变量);//属性     //构造方法(无修饰符,无返回值,名称和类名一样)      //方法(成员函数) }        通过下面一个例子,简单理解一下Java类的定义 public class CAT{// public是类的修饰符,class是定义类的关键字,CAT是类名     String name;     int age;//name、age是类的成员变量     v
mathor
2018/06/22
1.3K0
Java中静态变量(类变量)、实例变量、局部变量和成员变量
学习Java的过程中,一开始很容易被这些各种变量绕晕,这篇博客主要介绍了这几种变量之间的关系和区别。
用户8639654
2021/07/19
2.3K0
【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制
.29.
2023/10/25
2190
【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制
python中全局变量、局部变量、类变量、实例变量简析
因为python为动态语言,处理变量的方式与一些静态语言(比如C++)不大一样,在这里对这些变量进行小小的总结
用户7886150
2020/11/23
1.8K0
盘点一个面向对象的类变量和实例变量问题
前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个Python基础问题,这里拿出来给大家分享下,一起学习下。
前端皮皮
2022/08/17
6690
盘点一个面向对象的类变量和实例变量问题
Java类名 变量名的定义规范
标题类名 变量名 定义规范 类名 首字母大写 驼峰结构 变量名 首字母小写 驼峰结构 单词必须有意义 并且和程序相关 变量的定义 数据类型 变量名 = 值; 定义 数据类型 变量名; 赋值 变量名 = 值;
是阿超
2021/10/15
1.7K0
java 泛型类的定义和封装实例
为了让一个java类 在不同的类型都能在程序中调用,我们常常会将此类定义为泛型类,重要特点是:类的作用是通用的,仅此我们需要传入的类型不一样。
爱明依
2019/03/12
1.8K0
Python类变量和实例变量,傻傻分不清楚
前几天在Python最强王者交流群有个叫【Chloé】的粉丝问了一个关于Python类变量和实例变量的问题,这里拿出来给大家分享下,一起学习。
Python进阶者
2022/03/10
1K0
Python类变量和实例变量,傻傻分不清楚
awk给外部变量赋值
假设将值存在文件t中,文件t内容如下,只有一行:a b c 需要将a、b和c分别赋给外部变量x、y和z,则脚本可写成如下: eval $(awk '{ printf("x=%s\ny=%s\nz=%s",$1,$2,$3); }' ./t) echo $x echo $y echo $z 请注意printf函数中的换行符\n是必须的,起关键作用的是eval命令,它在很多场景有特别的用处。
一见
2018/08/02
3.9K0
c语言局部变量、全局变量、静态变量、内部函数、外部函数、声明、定义、extern作用总结
  前两种方式定义的变量可以在函数内任何地方使用,而第三种方式定义的变量只能在复合语句内使用。
vv彭
2020/10/27
9.7K0
c语言局部变量、全局变量、静态变量、内部函数、外部函数、声明、定义、extern作用总结
点击加载更多

相似问题

不能将GeofencingRequest解析为类型

22

不能将Rest解析为类型

32

不能将GoogleCloudMessaging解析为类型

95

不能将EmbeddedDataSource解析为类型

12

不能将HttpJUnitRunner解析为类型

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文