【发布时间】:2015-07-01 08:11:10
【问题描述】:
关系:一个事务可以有多个 Trans_Detail
Trans_Detail 用于保存交易的详细信息,
比如客人从酒店带走的物品和价格
Trans_Detail 用于记录交易明细,
Trans_Detail.Trans_ID 也是 PK 也是 FK,
数据库可以这样设计吗?
或者有什么更好的建议?
【问题讨论】:
-
可以这样设计吗-可以。考虑到这种详细程度,我们不知道它是否适合您的使用!
-
Trans_ID as varchar(10) 和 Primary key / Foreign Key 不是一个好主意。我会在事务表中创建一个列
ID BIGINT INDENTITY(1,1)。然后是 ID 上的唯一聚集索引,Trans_ID 上的唯一非聚集索引。将 Trans_Detail 中的 Trans_ID 更改为 BIGINT 并将其引用到 Transaction.ID ..... -
视情况而定。这取决于您要实现的目标、您想要存储的内容、您的业务问题、您的存储容量、您认为表访问的“热”程度、这是否是用于报告的表。 ......这么多的问题,但这么稀疏的问题。请提供有关您的方案的更多信息。
-
这是酒店系统数据库的一部分,我老师说这部分不是很好的数据库设计,说不能这样,因为Trans_Detail.Trans_ID设置为PK和FK,但他不能告诉我们为什么不能这样,也不能给我们建议!!
标签: sql sql-server