我有以下表格数据,我需要在关系数据库中表示(以及许多其他内容!):
customer valueID_1 valueID_2 response
-----------------------------------------
1 None None "hello"
1 1 None "hi"
1 None 1 "wassup"
1 1 1 "goodbye"
valueID_1
和valueID_2
都在另一个表中引用相同的主键。
我理解在SQL中重新创建这种格式是不好的关系数据库设计,如果可能的话我应该避免使用数组。我的不完整解决方案如下:
CREATE TABLE example
(
customer int4 references customers(customer),
valueID int4 references values(valueID),
valueID_position int4
response varchar
PRIMARY KEY (customer, valueID, valueID_position, response)
);
看起来像这样:
customer valueID valueID_position response
----------------------------------------------
1 None 1 "hello"
1 None 1 "wassup"
1 1 1 "hi"
1 1 1 "goodbye"
1 None 2 "hello"
1 None 2 "hi"
1 1 2 "wassup"
1 1 2 "goodbye"
然后我会创建一个视图,让我可以看到之前显示的信息:
CREATE VIEW example_view
SELECT
t1.customer, t1.valueID as valueID_1, t2.valueID as valueID_2, response
FROM t1 AS (
AS SELECT customer, valueID, response
FROM example
WHERE valueID_position = 1)
LEFT JOIN t2 AS(
SELECT customer, valueID, response
FROM example
WHERE valueID_position = 2)
ON t1.customer = t2.customer
AND t1.response = t2.response
答案 0 :(得分:1)
我会这样做:
Sub SomeMethod(Of T)(x As T, y As T)
If x Is y
' do stuff
End If
End Sub
您可以CREATE TABLE example (
ID int primary key identity(1,1)
CustomerID int not null references customers(customerID),
Value1ID int null references values(valueID),
Value2ID int null references values(valueID),
response nvarchar not null
);
将数据insert
放入此表中,直接select
直接来自该表;不需要观点。