|
|
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
ModelRДля плоской системы типов и ролей еще можно применить тот же фокус с константными полями.Чем плохи варианты с такими "константными" проверками. Если программно хочется отработать ошибку вставки, то невозможно будет "предсказать" вставится запись или нет. Проверку на совместимость типов объектов - можно будет только жестко закодировать в программе. Второй вариант - "проверка боем". Вставилась запись - значит типы совместимы, не вставилась - значет не совместимы. Оба варианта - не самые лучшие с точки зрения приложения в целом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 12:35 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
Возможный вариант схемы в прикрепленном файле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 12:50 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
ModelRя бы лучше сказал "ролей"На эту тему есть очень интересные размышления вот здесь - ELIT. ООП и роли , очень жаль что нет продолжения... :( Может кто-нибудь видел (продолжение) ? ModelRДля плоской системы типов и ролей еще можно применить тот же фокус с константными полями.Здорово :) Однако, дополнительное(и малоинформативное) поле role<y>.role_id(=y) на "объектном" уровне - это дополнительные накладные расходы (не ничтожные?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 13:14 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
Ребята не читайте газет во время еды и такие статьи.У вас уже Люди-это Товар,Авто-типы, а Фото-интерфейс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:05 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
SeVaВозможный вариант схемы в прикрепленном файле ? Файл не прикрепился, возможно, предварительный просмотр "съел", со мной такое случалось:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:07 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
База делается на Access, а с SQL-серверами я знаком плоховато. Почитаю про констрэйны, потом выскажусь отдельно. Но, как я понял, целостность надо проверять все-таки кодом? Значит, декларативно – никак. Жаль. Трудновато будет все эти триггеры на Access делать… Да чтобы отрабатывали без проблем… Кстати, тут частенько мелькают типы (что-то вроде _type_), так вроде бы по смыслу это практически тоже самое, что я предложил как ссылка на имя таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 18:25 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
Ссылка на имя таблицы увы не катит. Это скорее шаблон DDL. Я в свою очередь мало знаком с ACCESS, но боюсь действительно придется ручками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 18:35 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
КДБаза делается на Access, а с SQL-серверами я знаком плоховато. Почитаю про констрэйны, потом выскажусь отдельно. Но, как я понял, целостность надо проверять все-таки кодом? Значит, декларативно – никак. Жаль. Трудновато будет все эти триггеры на Access делать… Да чтобы отрабатывали без проблем… Кстати, тут частенько мелькают типы (что-то вроде _type_), так вроде бы по смыслу это практически тоже самое, что я предложил как ссылка на имя таблицы?1) в Access нет триггеров, но есть констрэйнты 2) то как показывали - это были именно декларативные ограничения. Просто под разные случаи, с разными ограничениями, достоинствами и недостатками. 3) Ссылка на имя таблицы - это текстовое поле (логическая ссылка). А тип - это сылка по внешнему ключу на таблицу "Справочник типов". В этом справочнике уже может храниться много полезного для работы с типом "Человек" или "Дом". Например, в какой таблице искать доп. данные по этому типу, название типа, название формы - которой можно открыть карточку типа итп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 18:44 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
2 Bely А где это в Access констрэйны? Из справки: Примечание. Ядро базы данных Microsoft Jet не поддерживает использование инструкции CONSTRAINT и всех инструкций языка определения данных (DDL) с базами данных, несовместимыми со стандартом Microsoft Jet. Используйте вместо них методы Create объектов доступа к данным (DAO). Но, м.б., их можно как-то эмулировать? Под словом "декларативно" я подразумевал – только с помощью ключей. > А тип - это сылка по внешнему ключу на таблицу "Справочник типов". > В этом справочнике уже может храниться много полезного для работы с типом "Человек" или "Дом". > Например, в какой таблице искать доп. данные по этому типу, название типа, название формы - которой > можно открыть карточку типа итп. Так если из этой таблицы убрать все, кроме "в какой таблице искать доп. данные по этому типу" – останутся как раз имена таблиц "Люди", "Дома", "Города" и т.д. В таком случае получается, что это моя таблица "Объект"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:35 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
К> Автор: КД К> 2 Bely К> А где это в Access констрэйны? Из справки: К> Примечание. Ядро базы данных Microsoft Jet не поддерживает К> использование инструкции CONSTRAINT и всех инструкций языка К> определения данных (DDL) с базами данных, несовместимыми со К> стандартом Microsoft Jet. Используйте вместо них методы Create К> объектов доступа к данным (DAO). Но, м.б., их можно как-то К> эмулировать? Под словом "декларативно" я подразумевал – только с К> помощью ключей. Написано же "несовместимыми со стандартом Microsoft Jet". Ограничения целостности в Access есть и работают через SQL. Документированы, например, в "Microsoft Jet SQL Reference". Хотя то, что там прописано, в полном объеме работает только через ADO. Если Вы используете DAO (собственно сам Access!) или ODBC, то поддерживается ограниченный синтаксис - довольно искусственное усечение (видимо, из ублюдочных маркетинговых соображений)! PRIMARY KEY, NOT NULL, и FOREGN KEY поддерживается при любом интерфейсе. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:02 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
Dmitriy Ivanov Написано же "несовместимыми со стандартом Microsoft Jet". Ограничения целостности в Access есть и работают через SQL. Документированы, например, в "Microsoft Jet SQL Reference". Хотя то, что там прописано, в полном объеме работает только через ADO. Если Вы используете DAO (собственно сам Access!) или ODBC, то поддерживается ограниченный синтаксис - довольно искусственное усечение (видимо, из ублюдочных маркетинговых соображений)! PRIMARY KEY, NOT NULL, и FOREGN KEY поддерживается при любом интерфейсе.Все правильно, только могу добавить. Поскольку базу создаем сами и руками - незачем в Access писать скрипт создания таблиц через SQL команды. Делаешь все через ихние визарды - и будут ограничения целостности, индексы и констрэйнты. Вобщем и здесь нет проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 10:02 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
Недавно, оказывается, появились в Access (с 2002) и CONSTRAIN'ы! Повнимательнее прочитал Гетца "Разработка настольных приложений" – можно применять, причем почти также хорошо как и в SQL-серверах (основываясь на данных нескольких таблиц, несколько правил проверки на уровне таблицы, чего, кстати, не обеспечивает пользовательский интерфейс). Только вот применять их можно, кажется, только выполняя CREATE TABLE, тогда как в SQL-серверах можно и после создания и даже отложить выполнение ограничения на какое-то время. Значит, либо переползаем на следующую версию, либо делаем ручками в коде. > Так если из этой таблицы убрать все, кроме "в какой таблице искать доп. данные по этому типу" – останутся как раз имена таблиц "Люди", "Дома", "Города" и т.д. В таком случае получается, что это моя таблица "Объект"? Ну, а по существу-то я прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 06:20 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
И дались тебе эти констрэйнты.Зачем они нужны в твоей задаче? CHECK "name" IN ('house','people',...) никто не делает.Покажи физическую модель,которая сейчас у тебя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 13:32 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
SeVaИ дались тебе эти констрэйнты.Зачем они нужны в твоей задаче?foreign key, вообще-то, тоже constraint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 14:14 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
О чем и речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 15:51 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
LR SeVaВозможный вариант схемы в прикрепленном файле ? Файл не прикрепился, возможно, предварительный просмотр "съел", со мной такое случалось:) up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 16:53 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
SeVaО чем и речь.Тогда как понимать слова: И дались тебе эти констрэйнты.Зачем они нужны в твоей задаче? т.е. внешние ключи фтопку? ню, ню... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 17:10 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
А, что ню, ню? FK, по большому счету, нужны только на этапе проектирования и для самодокументирования структуры БД, в остальном это только тормоза.Для его 4х таблиц это не обязательно.MS Projects, Axapta и иже с ними, обходятся полностью без FK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 17:43 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
SeVaА, что ню, ню? FK, по большому счету, нужны только на этапе проектирования и для самодокументирования структуры БД, в остальном это только тормоза.Для его 4х таблиц это не обязательно.MS Projects, Axapta и иже с ними, обходятся полностью без FKЭх, молодость, молодость... посмеялся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 17:46 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
Bely SeVaА, что ню, ню? FK, по большому счету, нужны только на этапе проектирования и для самодокументирования структуры БД, в остальном это только тормоза.Для его 4х таблиц это не обязательно.MS Projects, Axapta и иже с ними, обходятся полностью без FKЭх, молодость, молодость... посмеялся +1 - пятница, однозначно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 17:57 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
2Bely Еще смешнее,когда администраторы берутся обсуждать структуру БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2007, 12:26 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
2 SeVa > Покажи физическую модель,которая сейчас у тебя Так в посте от 14 октября привел. Незначимые для обсуждаемой задачи атрибуты опустил, а схема таблиц есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 06:30 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
Такой физ.схемы не может быть.Тебе уже правильно заметили, что для FK нужен уникальный индекс. Вопросы: 1.Связка основных сущностей нужна только для фото или есть еще варианты? 2.Зачем для фотографий нужны отношения многие ко многим? Если есть слабые сущности (дом находится в городе, человек проживает в доме) можно обойтись и 1:N.При этом не нужно каждый раз делать привязку изображений каждый раз поновой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:18 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
2 SeVa > Такой физ.схемы не может быть. Почему не может? FK+Ссылка на таблицу образуют составной ключ. Можно сделать и не составным ключом, а просто запретить ввод повторяющихся значений (путем создания составного индекса), а дополнительно назначить PK, что, собственно и показано на схеме, м.б., не очень понятно. > Связка основных сущностей нужна только для фото или есть еще варианты? Пока вроде только для фото. > Зачем для фотографий нужны отношения многие ко многим? Потому что на фотографии могут быть разные объекты (например, человек на фоне дома). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 06:04 |
|
||
|
Связывание таблиц различных объектов с одной
|
|||
|---|---|---|---|
|
#18+
Не понятно, поскольку FK на несколько таблиц одновременно не бывает. Поэтому делают наоборот, PK в основных сущностях уникальны в пределах БД и являются FК на Объект. Если привязка нужна только для фотографий, то на мой вгляд, таб. Объект - только лишнее усложнение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 13:51 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34880636&tid=1544188]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 458ms |

| 0 / 0 |
