【发布时间】:2014-11-24 10:37:12
【问题描述】:
我对我在项目中遇到的问题有疑问。问题是关于 DB 的模型,更准确地说:我如何对这种关系建模(起初我认为这将是简单的 M:M,但经过一些思考后它并不那么明显;))。我有一些想法,但也许有人会有更好的东西:)
我的问题是关于以下问题:
我有 2 张桌子。一个有例如发票,第二个 - 交易。一张发票可以匹配多笔交易,一笔交易可以匹配多张发票。我想允许用户进行一些匹配,以便他可以选择发票(一个或多个),选择交易(一个或多个)并单击“匹配”。但是点击“匹配”后,所有使用过的记录(发票和交易)都不能再使用了。我的想法是:
使用标准关联表,但有 3 列:idIncoive、IdTransaction 和用于匹配信息的唯一 id。并将唯一约束设置为......在这里我卡住了,因为我不知道如何强制一张发票可以有多个 transactinos 但在一个匹配中(我猜这里我缺少关于匹配的信息)
我想我会在发票和交易表中添加一个额外的列。并且当用户进行匹配时,我会将唯一的数字(但对于匹配是唯一的,对于表而言不是唯一的)到这些列。这个号码将是匹配号码,我可以很容易地检查女巫的交易/发票是否被检查过。
这是我目前最好的想法。但正如我所说 - 我不确定这是否是最好的,所以我也请求您对此发表意见。
还有一件事:有一个类似的(乍一看)问题here,但问题是:
- 比较复杂,因为用户需要进行一些特定的计算并存储有关项目的信息
- 还没有回答:)。
【问题讨论】:
-
“一张发票可以匹配多笔交易,一笔交易可以匹配多张发票。”你确定吗?当我从亚马逊订购东西时,我很确定没有其他人为此买单。 (也就是说,我的交易只出现在我的发票上,不会出现在其他人的发票上。)
-
是的,因为所有交易/发票都是针对同一个用户——我们。所以所有的发票都是我们开的发票,所有的交易都是到我们账户的交易。
标签: sql sql-server database-design relational-database database-schema