2010-11-04 24 views
0

商店表的建議: 編輯關於合適的數據庫設計和實施與C#

:來存儲不同的商店

StoreId  Name  PlaceCode 
-------- -------- --------  
1   Addidas  AB1   
2   Nike  KS3   
3   Puma  LS6   
4   Nike  AS2   
5   Nike  WR4 

區表信息

AreaId Area 
------ ------- 
1  DownTown 
2  UpTwon 

StoresArea表的表

StoreId AreaId 
------- ------- 
1   1 
2   2 
3   2 
4   1 
5   2 

例如,耐克公司的店鋪不止一家分店,因此我的想法是擁有比名稱屬性「耐克」更多的記錄,但其他屬性將包含有關分店的信息。

我用StoresArea Table創建了一個多對多的關係,但我認爲這可以通過一對多的關係來實現...而且它很混亂,所以我希望有一個好的建議,所以它可以幫助我遵循良好的做法!

我創建了一個名爲store的類來保存關於每個store的信息..但是我想添加一個額外的變量,我認爲它會是一個數組,這個變量將保存給定商店的所有分支的信息。

我覺得這個信息將是:
1 - 分支的PlaceCode
2 - ID,這樣我可以使用查詢字符串來訪問所有其他部門提供的網址STOREID =標識
3 - 分支的面積
?直接點,我想要任何特定商店的詳細頁面有一個名爲branches的字段,它將顯示分支區域+所有其他可用分支的PlaceCode。例如「分支機構:市中心:AS2」,市區單詞將可點擊鏈接到分支機構!

我知道這還不夠清楚!但我希望你能得到它 當然,你可以詢問任何進一步的細節或問題使圖片更清晰!

回答

0

Kashef,

每個商店只在一個區域,是否正確?如果是這樣,請創建一個具有與區域表的外鍵關係的存儲表(即存儲表中的RegionID)。

如果不同的商店是同一品牌/公司的一部分,請創建一個公司表併爲商店表設置一個foriegn密鑰。

的設置看起來像

區域表--->店鋪< ----公司

是,這種情況你有嗎?如果是這樣,讓我知道,我會談談這些課程。

埃裏克

編輯基於評論

在這種情況下,你真正需要的地區和存儲之間的許多一對多的關係,具有鮮​​明的主鍵(即不RegionID + STOREID)。

區域表---> RegionTable < ---房屋< ----公司

這將讓你有多個存儲在一個單一的區域。但是,它也允許單個商店的多個區域!您可以通過約束條件來解決此問題,以確保每個商店只有一個區域。

這是否有意義?

埃裏克

+0

其實一個區域或一個區域可以有一個以上的商店爲同一品牌,具有不同的地址 耐克可以有兩個分支在市中心!所以他們的獨特之處在於顯示他們的地址或地點代碼,就像在「分支機構:DownTown,AS2 - DownTown,SD1」 – lKashef 2010-11-04 02:29:12

+0

這些實際上是有意義的,並且這個想法已經開始出現了......但我可以還是想象一下,我將如何顯示特定商店的所有分支(PS:商店代碼扮演店鋪地址的一部分,所以這就是每個商店的獨特之處),請參閱我編輯第三個表以使其具有2耐克在同一地區的商店展示了這裏的多對多關係。 – lKashef 2010-11-05 11:15:08

0

作爲一般規則,我建議使用商業語言來定義軟件的概念。所以,我會用「分支」一詞來定義人們可以購買東西的具體物理位置。我會把這個共享的商業語言定義爲項目的第一步。

這也有助於以半正式的語法使用這種商業語言來理解概念。我認爲你說以下。

  • 有許多公司(耐克,阿迪達斯等)
  • 每家公司都有一個或多個分支。
  • 分行有一個,只有一個區號。
  • 一個區域代碼可能有0個或更多分支。

在這種情況下,該模型是Erick T建議的第一個解決方案(請原諒我不使用相同的名稱)。

具體做法是:

表業公司

COMPANY_ID  NAME 
--------------------- 
1    Nike 
2    Adidas 
3    Reebok 

表區域

AreaId Area 
------ ------- 
1  DownTown 
2  UpTown 

查表

BRANCH_ID  COMPANY_ID  AREA_ID  ADDRESS 
------------------------------------------------------- 
1    1    1    The Mall 
2    1    2    High Street 
3    2    1    Near MacDonalds 
4    3    2    Out of town 

找到其他商店爲公司給定的分支,你只需要在分支ID:

select * 
from branch 
where company_id = 
(select company_id from branch where branch_id = %current_branch_id%