Разработка базы данных, DataAccess и бизнес-уровней, когда у меня есть общая сущность - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть веб-сайт, который будет содержать множество видов бизнеса, у каждого бизнеса есть свои собственные слои, но теперь у меня есть общая сущность, которая называется Бренд.

Должен ли я иметь таблицу для каждой информации о торговой марке, например:

DB Table
Business1_BrandsInfo
....................

DB Table
Business2_BrandsInfo
...etc ?

и, конечно, у меня будет отдельная бизнес-единица для каждой информации о бренде для каждого бизнеса.

Или я должен иметь одну общую таблицу и добавить идентификатор для каждого бизнеса, чтобы определить, к какому бизнесу относится этот бренд.

Несколько бизнесов не связаны, но у меня есть одна и та же типичная информация для каждого бренда, независимо от типа бизнеса, и у меня на сайте около 5 различных типов бизнеса.

Ответы [ 3 ]

0 голосов
/ 17 сентября 2011

Я предполагаю, что под общим лицом вы подразумеваете объект, который используется всеми компаниями на вашем сайте. Если это так, ваша схема базы данных должна отражать одну таблицу для всех брендов, но в ней должен быть столбец BusinessID с внешним ключом для ассоциированного бизнеса.

[dbo].[Brands]
ID
BusinessID → [dbo].[Businesses].[ID]
...

[dbo].[Businesses]
ID ← [dbo].[Brands].[BusinessID]
...

Вы можете добавить столько предприятий и брендов, сколько захотите, но позже, хотя, если вы хотите, чтобы пользовательские свойства различались от бизнеса к бизнесу или от бренда к бренду, то эту схему пришлось бы изменить, или вам пришлось бы придумать другой метод для этих пользовательских полей.

0 голосов
/ 17 сентября 2011

Я бы разделил это. Вот два варианта ниже. Вам не нужно повторять таблицы с данными одного типа.

Вариант 1

Brands
{
  ID,
  BusinessID,   (FK to Business.ID)
  Info1,
  Info2
}

Business
{
  ID,
  BusinessName,
  BusinessDesc,
  OtherStuff1,
  OtherStuff2
}

Вариант 2

Brands
{
  ID,
  Info1,
  Info2
}

Business
{
  ID,
  BusinessName,
  BusinessDesc,
  OtherStuff1,
  OtherStuff2
}

BusinessToBrands
{
  ID,
  BrandsID(FK to Brands),
  BusinessID(FK to Business)
}
0 голосов
/ 17 сентября 2011

просто: если у нее одинаковые свойства для каждой таблицы, вы можете поместить ее в 1 таблицу и распознать их по столбцу TypeId.

если у вас более 1 типа, вам также потребуется более 1 сущности для заполнения этих таблиц.

тип для распознавания будет также в классе.

имейте в виду, что если завтра вы добавите конкретный столбец к типу "1", у вас возникнет проблема ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...