|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Здравствуйте, уважаемые. Только начал изучать базы данных. Есть учебная задача: система управления стоматологической клиникой. Создал следующие таблицы: Таблица прием Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Таблица врач Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Таблица Пациент Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Таблица Услуг Код: sql 1. 2. 3. 4. 5.
Таблица Пользователи (для авторизации в приложение ) Код: sql 1. 2. 3. 4. 5. 6.
И вот такой вопрос ,как обеспечить контроль целостности бд и параллельность работы пользователей? ==== Firebird 2.5.5.26952\ibexpert ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 21:58 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Ziph, не используй зарезервированные слова в качестве имён столбцов, нафига тебе этот геморрой с двойными кавычками? Ziphкак обеспечить контроль целостности бд для начала неплохо бы прочитать про средства обеспечения целостности: primary key, foreign key, unique, check ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 22:15 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Симонов Денисдля начала неплохо бы прочитать про средства обеспечения целостности: primary key, foreign key, unique, check Имена столбцов поправил. Почитал про данные средства, более-менее представления имеются, теперь как это применить к таблицам? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 23:25 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Ziph Код: sql 1. 2.
Это FK Ziph Код: sql 1. 2.
И это бы следовало конвертнуть в FK на пациента, тем более таблица уже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 08:46 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
wadmanZiph Код: sql 1. 2.
Это FK Ziph Код: sql 1. 2.
И это бы следовало конвертнуть в FK на пациента, тем более таблица уже есть. Переделал таблицу: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Далее каждой таблице добавил первичный ключ и создал внешние: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
И внешние: Код: sql 1. 2. 3. 4. 5.
Правильно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 09:06 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
ZiphПравильно ? Рекомендую потратить день-два на освоение темы http://www.sql.ru/forum/133383/chitat-vsem-kto-prishel-suda-v-pervyy-raz Там и прекрасный рабочий инструмент есть IBExpert. PK поля надежнее делать BIGINT, у FK полей делать префикс FK, а не PK. Payment не float, а numeric с нужной разрядностью. DATA_RECEPTION - лучше timestamp. Название улиц легко переваливает за 10 символов и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 09:48 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Ziph, стоит подумать над тем действительно ли во всех FK требуется каскадное удаление, а тем более каскадное обновление ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 09:55 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Симонов ДенисZiph, стоит подумать над тем действительно ли во всех FK требуется каскадное удаление, а тем более каскадное обновление Если удалить, допустим, врача из таблицы, то он же останется в дочерней? Почему же не нужно в данных fk каскадное удаление\обновление? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 10:16 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Ziph, я с трудом могу поверить что врача можно удалить, если он уже выписал рецепт или вообще поработал хотя бы день. Уволить можно, но это же не значит что все пациенты, рецепты выписанные врачом должны исчезнуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 10:25 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
ZiphСимонов ДенисZiph, стоит подумать над тем действительно ли во всех FK требуется каскадное удаление, а тем более каскадное обновление Если удалить, допустим, врача из таблицы, то он же останется в дочерней? Почему же не нужно в данных fk каскадное удаление\обновление? Это называется "историчность" - у врача должны быть даты начала работы и увольнения. Как и у пациента - даты постановки на учет и снятия с оного. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 10:26 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
А, блин, о этом не подумал. Получается ни в одном fk этого не нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 10:32 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
wadman, причём смутно помнитмся вроде была на iBase статья о структурах данных с првязкой к временным периодам, но сейчас не нашел ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 13:37 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Господа, такой вопрос. Как заблокировать запись для манипуляций с ней, если кто-то ее уже изменяет\удалил, но dbgrid еще не обновился ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 23:17 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
В гугле "firebird select with lock". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2016, 08:56 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
Hello, Ziph! You wrote on 21 апреля 2016 г. 11:14:59: Ziph> Господа, такой вопрос. Как заблокировать запись для манипуляций с ней http://ibase.ru/pslock/ Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2016, 11:15 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
А как обновить таблицу у всех пользователей после изменения\удаления записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2016, 08:48 |
|
Контроль целостности бд, параллельность работы пользователей
|
|||
---|---|---|---|
#18+
ZiphА как обновить таблицу у всех пользователей после изменения\удаления записи? Читай http://www.firebirdsql.org/file/documentation/papers_presentations/Power_Firebird_events.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2016, 10:02 |
|
|
start [/forum/topic.php?fid=40&msg=39218754&tid=1562204]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 167ms |
0 / 0 |