更改表与带有外键的新表

发布于 2024-08-12 06:34:34 字数 910 浏览 6 评论 0 原文

我有一个现有的数据库需要进行一些更改。我需要决定是更改表来记录额外数据,还是使用已记录该数据的现有表进行单独测试,并将其链接到带有新表的另一个表。

现有:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2...)

选项 1:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2..., ...data fields 1...)

选项 2:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2...)
tMDPVLink( ixMDPVLink (pk), ixMotorData (fk), ixPressureVolume (fk))

基本上,它的工作方式是在测试序列开始时进行一次检查压力体积的测试。现在他们想每五分钟记录一次以及其他电气数据。他们仍将进行初始压力容量测试。

I have a existing database that needs some changes done. I need to decide whether to alter a table to record the extra data or use the existing table that already records that data for a separate test and link it to the other table with new table.

Existing:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2...)

Option 1:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2..., ...data fields 1...)

Option 2:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2...)
tMDPVLink( ixMDPVLink (pk), ixMotorData (fk), ixPressureVolume (fk))

Basically the way it was working was there was a test to check pressure volume once at the start of the test sequence. Now they want to record it every five minutes with the other electrical data. They will still be performing the initial pressure volume test.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小矜持 2024-08-19 06:34:34

我有一个现有的数据库需要
做了一些改变。我需要决定
是否改变一个表来记录
额外数据或使用现有表
已经记录了该数据
单独的测试并将其链接到另一个
带有新表的表。

我不会仅仅因为它是在项目后期添加的这一事实而将某些内容放入带有参考的单独表中。

尝试将那些属于一起的信息放在一起 -->我宁愿用一两列额外的列来更新现有表,也不愿创建一个人工的、新的“链接”表。

此规则的唯一例外可能是,如果您有大量形成逻辑实体的列(例如:10 或更多),并且仅在不到 10% 的情况下才会出现在您的业务案例中。

例如,如果您有特定类型的客户,需要大量额外字段,但实际上只有少数客户(例如您的“黄金”客户),那么最好将这些数据“集群”放入单独的表中并将其链接起来 - 否则对于绝大多数数据库实体来说,一大堆字段都将为空(NULL)。

希望能有点帮助——只是我自己的 2 美分;-)

I have a existing database that needs
some changes done. I need to decide
whether to alter a table to record the
extra data or use the existing table
that already records that data for a
separate test and link it to the other
table with new table.

I wouldn't put something into a separate table with a reference just based on the fact it's being added late in the project.

Try to keep those bits of information together that belong together --> I would rather update existing tables with an extra column or two, than create an artificial, new "linked" table.

The only exception to this rule might be if you have a substantial number of columns (say: 10 or more) that form a logical entity and that are only ever going to be present in your business case in less than 10% of the cases.

E.g. if you have a specific type of customer which needs lots of extra fields, but that's really only a handful of customer (like your "Gold" customers), then it might be better to put those "clusters" of data into a separate table and link it up - since otherwise a whole bunch of fields will all be empty (NULL) for the vast majority of your database entities.

Hope that helps a bit - just my own 2 cents ;-)

海风掠过北极光 2024-08-19 06:34:34

如果所有数据(电机+泵)同时采样,则将所有数据放入一张表中,如下所示:

pump_model_02

如果压力/体积的采样与电机数据无关,请使用:

If all data (motor + pump) is sampled at the same time, put everything in one table, like this:

pump_model_02

If pressure/volume is sampled independently from motor data, use this:

pump_model_03

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文