2010-11-04 2 views
0

Magasins Tableau: une table pour stocker des informations sur les différents magasinsUn des conseils sur une conception de base de données appropriée et mise en œuvre avec C#

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

zones Tableau

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

StoresArea Tableau: Modifier

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

Nike par exemple a plus d'une branche pour son magasin donc mon idée était d'avoir plus d'un enregistrement avec l'attribut de nom "nike" mais les autres attributs contiendront les informations sur la branche.

J'ai utilisé la table StoresArea pour créer une relation plusieurs-à-plusieurs, mais je pense que cela peut être réalisé avec une relation un-à-plusieurs ... et c'est confus, donc j'espérais un bon conseil pourrait m'aider à suivre une bonne pratique!

J'ai créé une classe nommée magasin, pour contenir les informations sur chaque magasin ... mais je veux ajouter une variable supplémentaire et je pense que ce sera un tableau, cette variable contiendra des informations sur toutes les branches d'un magasin donné .

Je pense que cette information sera:
1 - PlaceCode
de la branche 2 - Id afin que je puisse fournir une URL à l'aide querystring pour accéder à toutes les autres branches StoreID = Id
3 - zone de la branche
? pour aller directement au point, je veux que la page détaillée d'un magasin donné ait un champ appelé branches, qui affichera la zone de la branche + le code de la place de toutes les autres branches disponibles. Par exemple, «Branches: Centre-ville: AS2» et le mot du centre-ville seront cliquables pour créer un lien vers la succursale!

Je sais Ce n'est pas assez clair! mais j'espère que vous l'obtiendrez sûr, vous pouvez poser des questions sur d'autres détails ou des questions pour rendre l'image plus claire!

Répondre

0

Kashef,

Chaque magasin est seulement dans une seule région, non? Si c'est le cas, créez une table de magasin avec une relation de clé étrangère à la table de régions (c'est-à-dire, RegionID dans la table de magasins).

Si différents magasins font partie de la même marque/entreprise, créez une table d'entreprise et configurez une clé d'accès à la table de magasins.

La configuration ressemblerait

Table Région ---> Stocke < ---- Société

Est-ce que la situation que vous avez? Si oui, faites le moi savoir et je parlerai des cours.

Erick

Modifié en fonction des commentaires

Dans ce cas, ce que vous avez vraiment besoin d'un grand nombre à plusieurs entre les régions et les magasins, avec une clé primaire distincte (et non regionId + StoreID).

Région ---> Tableau RegionTable < --- Magasins < ---- Société

Cela vous permettra d'avoir plusieurs magasins dans une seule région. Cependant, il permet également plusieurs régions pour un seul magasin! Vous pourriez être en mesure de contourner ce problème avec une contrainte qui garantit que chaque magasin n'a qu'une seule région.

Est-ce que cela a du sens?

Erick

+0

En fait, une région ou d'une région pourrait avoir plus d'un magasin pour la même marque, avec une adresse différente Nike pourrait avoir deux branches dans DownTown! ce qui les rendra uniques est d'afficher l'adresse ou le code de lieu avec eux comme dans "Branches: DownTown, AS2 - DownTown, SD1" – lKashef

+0

qui a vraiment du sens, et l'idée a commencé à apparaître déjà ... mais je peux N'imaginez toujours pas comment je vais afficher par exemple, toutes les branches pour un magasin spécifique (PS: le StoreCode joue le rôle de l'adresse du magasin, donc c'est ce qui rend chaque magasin unique) voir J'ai édité la troisième table pour avoir 2 Nike stocke dans la même région pour démontrer la relation many-to-many ici. – lKashef

0

En règle générale, je recommande d'utiliser la langue des affaires pour définir vos concepts logiciels. Donc, j'utiliserais le mot «branche» pour définir l'endroit concret et physique où les gens peuvent acheter des choses. Je ferais de la définition de ce langage métier partagé la première étape du projet.

Il est également utile d'utiliser ensuite ce langage métier dans une syntaxe semi-formelle pour passer en revue les concepts. Je pense que vous dites ce qui suit.

  • Il y a beaucoup d'entreprises (Nike, Adidas, etc.)
  • Chaque entreprise a une ou plusieurs branches.
  • Une branche a un et un seul code de zone.
  • Un code de zone peut avoir 0 ou plusieurs branches.

Dans ce cas, le modèle est la première solution suggérée par Erick T (pardonnez-moi de ne pas utiliser les mêmes noms que lui).

Plus précisément:

Tableau ENTREPRISE

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

Tableau ZONE

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

Tableau DIRECTION

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 

Pour trouver d'autres magasins de la société pour une branche donnée, vous avez seulement besoin de la branche ID:

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