Структура базы данных .. Угг? - PullRequest
3 голосов
/ 18 апреля 2011

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

У меня достаточно простая настройка базы данных:

Table_Customer
  ID  (PK)
  Acc_number
  First
  Last
  etc.

Table_Notes
  ID (PK)
  Note_Type_FK (links to Table_Note_type)
  Note
  Account_FK (Links to Table_Customer)

Table_Note_Type
  ID (PK)
  Note_Type_Name
  Note_Type_Desc

Notes для всех заметокотносящиеся к этому клиенту, и могут быть связаны с технической поддержкой, отслеживанием продаж и т. д. В этой таблице FK связан с Note_Type, а FK - с Acc_number в Customer.

MyВопросы :

  1. Правильно ли настроено?
  2. При использовании SQL, когда я добавляю / обновляю клиента и выбираю тип заметки (например, Служба технической поддержки) и печатаю заметку для этого клиента, есть ли что-то, что я должен делать / не замечать при запускеоператор вставки?

Это простой вопрос, но я хочу убедиться, что я делаю это правильно.

Ответы [ 3 ]

2 голосов
/ 18 апреля 2011

Ваша структура верна, но вы можете переосмыслить свою схему именования.Хотя схемы именования могут сильно различаться, обычно не рекомендуется ставить перед всеми таблицами базы данных префиксы tbl или Table_.Эта статья, автором которой является Нараяна Вьяс Кондредди, по-видимому, является одним из наиболее распространенных руководств по соглашениям об именах SQL Server:

http://vyaskn.tripod.com/object_naming.htm

На вопрос соглашений об именах SQL также дан ответсайт раньше, см .:

Соглашения об именовании баз данных Microsoft?

2 голосов
/ 18 апреля 2011

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

Что касается вставки, пока и Customer, и Note_Type уже существуют, все должно быть хорошо. Одна вещь, которая сначала сбивает с толку некоторых людей, - это убедиться, что правила каскада установлены так, как они хотят видеть на иностранных ключах. В зависимости от требований, вы можете захотеть удалить все Notes при удалении Customer (каскадное удаление), или вы можете потребовать, чтобы все Notes были удалены в первую очередь, до Customer разрешено удалять (каскадное ограничение)

1 голос
/ 18 апреля 2011

Ваш подход будет работать. Одна вещь, чтобы упомянуть; вам не нужен идентификатор в таблице клиентов, если номер счета уникален.

Вот простой ERD для вашей цели.

enter image description here

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