目前,我的数据库、商店和产品中有两个表。每个产品都有自己的ID 1-2000,每个商店都有自己的id 1-200。
我关于DB设计的问题是,如何跟踪每家商店都有哪些产品?
发布于 2012-08-05 13:08:03
您的问题可以通过实体关系图(用dia创建)来建模:
。
有两个实体“产品”和“商店”,在这些实体之间有一个m关系的“股票”。" product“有一个属性"productId”,它唯一地决定了产品。“存储”具有唯一的属性"storeId“,该属性决定了存储的惟一性。
我添加了属性"quanity“、"storeAddress”和"productName“,以使模型更加复杂。这些属性不能由您的描述派生,您可以从图表和结果表中删除它,如果您希望设计严格遵循您的描述。N-m关系是指一家商店可以储存不同的产品,一种产品可以在不同的商店中储存。我们有以下问题:
最后一句也可以这样表述。
这样的关系图可以在关系模型中转换。每个实体都是一个表,其中的属性是列。唯一标识符是主键。m关系是一个表,其中主键是a (storeId,productId)对.如果关系具有属性,则该属性是表中的列。
因此,我们有以下关系(表)
store("storeId", storeAddress)
product("productId",productName)
stock("storeId","productId",quantity)
发布于 2012-08-03 00:36:44
您提出的第一个选项是"NoSQL“设计模式&不允许在普通关系数据库管理系统中轻松查询。
你的第二个选择是最合适的。有第三个表,跟踪哪些产品在哪个商店。可能被称为“股票”--如果你想要跟踪每一家商店有多少商品,你可以在上面加一个计数。
https://dba.stackexchange.com/questions/21925
复制相似问题