我正在创建一个数据库来容纳餐馆和商店。我在决定是否应该有两张桌子时遇到一些问题,餐厅和餐厅。商店,或只有一个,企业。通过商业方法我会:
create table dbo.Businesses (
Id int identity not null primary key clustered (Id),
BusinessTypeId int not null,
Address nvarchar (200) not null,
City nvarchar (100) not null,
Name nvarchar (100) not null,
AverageMealPrice int null
-- Other business columns
)
create table dbo.BusinessTypes (
Id int identity not null primary key clustered (Id),
Name nvarchar (100) null
)
BusinessTypes可以是餐厅或商店......商业表格有一个BusinessTypeId来分类这类商业。
我有两个问题:
某些列特定于某种业务,而其他列则很常见。
可能存在商家可以是商店或餐馆的情况。
你会用什么方案?欢迎提出任何建议。
答案 0 :(得分:0)
问题nr 1不是那么大的问题。当您将所有内容存储在一个表中时,您可以使用仅由一种类型使用的公共列和列 - 另一种类型将具有空值。
可能存在商家可以是商店或商店的情况 餐厅。
这是有问题的。这取决于你将同时对这样一个物品作为商店/餐馆所做的操作,因为存储在一行中它将失去它的个性。您将无法单独参考商店或餐馆,而是指餐馆和商店的对象。它可以产生许多复杂性,取决于你将在餐馆/物体上进行的操作。
答案 1 :(得分:0)
在餐厅和商店中搜索更容易 如果有许多特定于餐厅和商店的字段,您可以创建仅包含这些特定字段的餐厅和商店表,并在商务表中保留RestaurantID和e StoreID。在商务表中,您只需保留常用字段。
您还可以在类型表中使用3种类型:
餐厅
商店
两者