2012-05-03 3 views
-1

У меня вопрос, и теперь я мало-по-разному изучаю, что такое база данных.реализовать наследование в таблицах или нет

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

Как дизайн сделал бы это ?. я хочу управлять привилегиями доступа и, таким образом, избегать наследования таблицы, но не в том случае, если это должно применяться в моем случае или только с Access, потому что из таблицы, называемой PERSON, и другой таблицы, называемой SALES, если, например, человек является продавец и еще один сотрудник - это пользователь, который купит что-нибудь за столом. ПРОДАЖА. Я хочу сохранить данные о продавце и лестницах, и если у вас есть только одна таблица под названием pERSON. Будет ли это двойное отношение ?, должно быть два из FK ID PERSON?

+0

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

ответ

0

В хорошей модели вы должны думать в бесконечных бесконечно-бесконечных отношениях 1-1. Итак, хорошая модель должна быть:

  • каждый стол для вида объекта (лица, продажи и т.д.)
  • каждая группа вида (администратор, sellerman, покупатель и т.д.)
  • если вы имеют бесконечные таблицы, вы должны создать таблицу для отношений.

например. для бесконечномерных бесконечна (1 человек может имеет один или более вид):

PERSONS 
- Person_ID 
- Firstname 
- Lastname 
- Address 

WORK 
-Work_ID 
-Kind (Administrator, seller, etc) 

REL_PERS_WORK 
-Rel_Id 
-Person_ID (from PERSONS table) 
-Work_ID (from WORK table) 
+0

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

+0

Это зависит от того, думаете ли вы, что человек может получить доступ с одним или несколькими именами пользователей. Хорошая идея нормализовать таблицы, но денормализовать это тоже здорово. Запрос одной таблицы более быстрый и эффективный, чем две таблицы. Для 1-1 и не является другим объектом, используйте ту же таблицу. Имейте в виду также, если в ближайшем будущем вы разделите эту информацию, например таблицу с именем пользователя, паролем, точками, псевдонимом и т. Д. И т. Д. Основная идея - не повторять информацию. –

+0

Нет никакого «хорошего» способа или «плохого» способа. Это зависит от гибкости ваших объектов и эффективных процедур. В другом случае я сохраняю пароли в формате шифрования MD5 (или любом методе ONE-WAY) в отдельной таблице, которую я никогда не запрашиваю непосредственно из программного обеспечения, каждый раз из хранимой процедуры. И я никогда не запрашиваю пароль, когда-либо для id. –

Смежные вопросы