商店和餐馆的数据库方案

时间:2016-08-10 11:25:03

标签: sql sql-server database-design

我正在创建一个数据库来容纳餐馆和商店。我在决定是否应该有两张桌子时遇到一些问题,餐厅和餐厅。商店,或只有一个,企业。通过商业方法我会:

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来分类这类商业。

我有两个问题:

  1. 某些列特定于某种业务,而其他列则很常见。

  2. 可能存在商家可以是商店或餐馆的情况。

  3. 你会用什么方案?欢迎提出任何建议。

2 个答案:

答案 0 :(得分:0)

问题nr 1不是那么大的问题。当您将所有内容存储在一个表中时,您可以使用仅由一种类型使用的公共列和列 - 另一种类型将具有空值。

  

可能存在商家可以是商店或商店的情况   餐厅。

这是有问题的。这取决于你将同时对这样一个物品作为商店/餐馆所做的操作,因为存储在一行中它将失去它的个性。您将无法单独参考商店或餐馆,而是指餐馆和商店的对象。它可以产生许多复杂性,取决于你将在餐馆/物体上进行的操作。

答案 1 :(得分:0)

在餐厅和商店中搜索更容易 如果有许多特定于餐厅和商店的字段,您可以创建仅包含这些特定字段的餐厅和商店表,并在商务表中保留RestaurantID和e StoreID。在商务表中,您只需保留常用字段。

您还可以在类型表中使用3种类型:
餐厅
商店
两者