相关疑难解决方法(0)

SQL - 具有相同表和关系约束的多对多关系

我有一个 SellerProduct 表。表格中的每一行代表卖家提供的产品信息。SellerProduct 表包含以下列:

id (serial, pk)
productName (nvarchar(50))
productDescription (ntext)
productPrice (decimal(10,2))
sellerId (int, fk to Seller table)
Run Code Online (Sandbox Code Playgroud)

不同卖家的产品可能相同,但每个卖家的 productName、productDescription 和 productPrice 可能不同。

例如,考虑产品 TI-89。卖家 A 可能拥有产品的以下信息:

productName = TI-89 Graphing Calc
productDescription = A graphing calculator that...
productPrice 65.12
Run Code Online (Sandbox Code Playgroud)

卖家 B 可能拥有以下产品信息:

productName = Texas Instrument's 89 Calculator
productDescription = Feature graphing capabilities...
productPrice 66.50
Run Code Online (Sandbox Code Playgroud)

管理员用户需要确定不同卖家的产品是相同的。

我需要一种方法来捕获这些信息(即卖家的产品是相同的)。我可以创建另一个名为 SellerProductMapper 的表,如下所示:

sellerProductId1 (int, pk, fk to SellerProdcut table)
sellerProductId2 (int, pk, fk to SellerProdcut table)
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在于它允许对给定行的 SellerProductId1 和 SellerProductId2 来自同一个卖家。这不应该被允许。 …

database-design table many-to-many

5
推荐指数
1
解决办法
5657
查看次数

具有有效性间隔的可移植表设计(历史化、时态数据库)

我正在为一个应用程序设计一个数据模型,它必须跟踪数据的变化。

第一步,我的应用程序必须支持PostgreSQL,但我想在第二步中添加对其他 RDBMS(尤其是 Oracle 和 MS SQL 服务器)的支持。因此,我想选择使用较少专有功能的便携式数据模型。(表的 DDL 可能因 RDBMS 供应商而异。但应用程序中的 SQL 查询/语句对于所有支持的供应商应尽可能相同。)

例如,假设有users一张users_versions桌子。users_versions在 上有一个外键users

表的示例可能如下所示:

users
----------------
id | username
---------------- 
 1 | johndoe
 2 | sally

users_versions --> references id of user (userid)
---------------------------------------------------------------------------
id | userid | name     | street      | place     | validfrom  | validuntil
---------------------------------------------------------------------------
 1 |      1 | John Doe | 2nd Fake St | Faketown  | 2018-01-04 | 2018-01-05
 2 |      1 …
Run Code Online (Sandbox Code Playgroud)

postgresql index oracle database-design sql-server

5
推荐指数
1
解决办法
533
查看次数