|
|
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
Всем привет. Потихоньку осваиваю SQL. Владею им на самом начальном уровне, хотелось бы довести хотя бы до начально-среднего. Читаю книги. И решил создать простенькую БД, в которую запихаю какое-то количество данных и буду экспериментировать с нею в процесс чтения той или иной книги. База данных описывает библиотеку, в которой присутствует M книг N авторов (M>=N). Также есть читатели и каждый из них может взять на чтение несколько книг. При этом я думаю на первое время сделать упрощение, что каждой книги очень много и несколько человек могут взять по экземпляру (иначе мне придется вводит поле, взята ли книга или хранится в библиотеке, или же поле, в котором хранится количество определенных книг в библиотеке, например Книга1 - 1 штука, Книга 2 - 3 штуки) БД выглядит вот так. Зацените плиз, все ли верно с т. з. грамотного проектирования БД. Еще вопрос по поводу моих упрощений, может не стоит их делать, а сразу сделать самый трудный вариант (т. е. в таблицу Book ввести поле 'количество')? create database Library; use Library; create Table Autors (id int(10) auto_increment, firstName varchar(10), lastName varchar(10), primary key (id)); create Table Book (id int(10) auto_increment, authorId int(10), bookName varchar(100), primary key (id), foreign key (authorId) references Autors(id)); create Table Readers (id int(10) auto_increment, firstName varchar(10), lastName varchar(10), primary key (id)); create table TakenBooks (id int(10) auto_increment, bookId int(10), readerId int(10), foreign key (bookId) references Book (id), foreign key (readerId) references readers (id), primary key (id)); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 15:38 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
Geronemo, Таблицы "авторы" и "читатели" - суть одно и тоже. Можно совместить данные в одной таблице, добавив флаг ISREADER или ISAUTHOR. Заодно решишь вопрос - "может ли читатель быть писателем и наоборот" и избежишь дублирования данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 16:01 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
DarkMaster, Переделал. Все-таки добавил поле numberOfBooks, все-таки в настоящей библиотеке многие книги находятся не в единственном варианте create database Library; use Library; create table Person (id int(10) auto_increment, firstName varchar(10), lastName varchar(10), isAuthor boolean default false, primary key (id)); create table Book (id int(10) auto_increment, authorId int(10), bookName varchar(100), numberOfBooks int(10) default 1, primary key (id), foreign key (authorId) references Person(id)); create table TakenBooks (id int(10) auto_increment, bookId int(10), readerId int(10), foreign key (bookId) references Book (id), foreign key (readerId) references Person (id), primary key (id)); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 16:12 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
DarkMaster Можно совместить данные в одной таблице, добавив флаг ISREADER или ISAUTHORА нужно ли. Добавить путаницу на ровном месте и для чего? Наследование будет на следующем курсе (для продвинутых). Geronemo База данных описывает библиотеку, в которой присутствует M книг N авторов (M>=N). Также есть читатели и каждый из них может взять на чтение несколько книг.Условие задачи неполное. Добавьте список запросов и действий читателей. Таблица TakenBooks - как я понял это лог действий читателей - книга взята, книга возвращена. Добавте туда дату события. Тогда поле количество будет вычисляемым - то бишь определятся из этого лога. (получается такой примитивный Склад) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 16:52 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
SERG1257DarkMaster Можно совместить данные в одной таблице, добавив флаг ISREADER или ISAUTHORА нужно ли. Добавить путаницу на ровном месте и для чего? Наследование будет на следующем курсе (для продвинутых). А зачем плодить сущности изначально? P.S. Был проект - перерабатывали логическую структуры одной БД. Из ~100 таблиц убралось около 20 именно из-за объединения сущностей. И это при том, что "универсальными справочниками" не баловались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 17:00 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
SERG1257DarkMaster Можно совместить данные в одной таблице, добавив флаг ISREADER или ISAUTHORА нужно ли. Добавить путаницу на ровном месте и для чего? Наследование будет на следующем курсе (для продвинутых). Ладно, пусть будет 1 таблица, где будут и писатели и читатели. Все-таки логически каждый из них может быть и тем и тем. Ну и, чем сложнее БД, тем мне будет лучше, чтобы потренироваться на разного рода запросах. Условие задачи неполное. Добавьте список запросов и действий читателей. Тут я пока не знаю... Думаю будет очень много наиразнообразнейших запросов, даже самых извращенных, т. к. для меня это не реальная задача, а вымышленная с целью освоения SQL Таблица TakenBooks - как я понял это лог действий читателей - книга взята, книга возвращена. Добавте туда дату события. Тогда поле количество будет вычисляемым - то бишь определятся из этого лога. (получается такой примитивный Склад) Да, можно добавить поля 'Дата, когда книг взята' not null и 'Дата, когда книгу вернули' (null, если еще не вернули). Также мне похоже надо в таблицу Book добавить поле 'текущее количество книг в наличии'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 17:09 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
GeronemoВсем привет. Потихоньку осваиваю SQL. Владею им на самом начальном уровне, хотелось бы довести хотя бы до начально-среднего. Читаю книги. И решил создать простенькую БД, в которую запихаю какое-то количество данных и буду экспериментировать с нею в процесс чтения той или иной книги. База данных описывает библиотеку, в которой присутствует M книг N авторов (M>=N). Также есть читатели и каждый из них может взять на чтение несколько книг. При этом я думаю на первое время сделать упрощение, что каждой книги очень много и несколько человек могут взять по экземпляру (иначе мне придется вводит поле, взята ли книга или хранится в библиотеке, или же поле, в котором хранится количество определенных книг в библиотеке, например Книга1 - 1 штука, Книга 2 - 3 штуки) БД выглядит вот так. Зацените плиз, все ли верно с т. з. грамотного проектирования БД. Еще вопрос по поводу моих упрощений, может не стоит их делать, а сразу сделать самый трудный вариант (т. е. в таблицу Book ввести поле 'количество')? create database Library; use Library; create Table Autors (id int(10) auto_increment, firstName varchar(10), lastName varchar(10), primary key (id)); create Table Book (id int(10) auto_increment, authorId int(10), bookName varchar(100), primary key (id), foreign key (authorId) references Autors(id)); create Table Readers (id int(10) auto_increment, firstName varchar(10), lastName varchar(10), primary key (id)); create table TakenBooks (id int(10) auto_increment, bookId int(10), readerId int(10), foreign key (bookId) references Book (id), foreign key (readerId) references readers (id), primary key (id)); КАЖДАЯ книга (ея экземпляр) - имеет свой идентификатор типа - ИнвНомер (..на 17-й странице..) простенько мэйн тблка - Визит (когда- кто и тд... ) под неё дитэйл тблка (ПК-ФК) в которой - - экземпляр'ы'.. чо взял Читатель.... соответственно - разнообразные Статусы типа - Должник, Утеря.. и тп.. в тблке TakenBooks - не хватает Дат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 17:13 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
Кстати, появился вопрос по синтаксису. Хочу содать таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 17:14 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
GeronemoКстати, появился вопрос по синтаксису. Хочу содать таблицу Book с полями id int(10) auto_increment authorId int(10) bookName varchar(100) - тут у меня вопрос, что если в названии книги будет 110 символов. numberOfBooks int(10) default 1 currentNumberOfBooks int(10) - тут вопрос, как сделать так, чтобы по дефолту значение было равно значению колонки numberOfBooks primary key (id), foreign key (authorId) references Person(id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 17:16 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
DarkMaster А зачем плодить сущности изначально? Потому что это РАЗНЫЕ сущности - писатели пишут книги, а читатели пользуются библиотекой. Общего у них только принадлежность к людям. [offtopic] DarkMaster Из ~100 таблиц убралось около 20 именно из-за объединения сущностей. И это при том, что "универсальными справочниками" не баловались.У вас странные критерии оптимизации. Из двух таблиц сделали одну. Вот недостатки навскидку 1 увеличили вероятность ошибки (оптимизатор не заругается на левую таблицу) 2 убрали возможность дать разные права 3 блокировка таблицы (типа индексы перестоить) блокирует обе таблицы 4 полный скан будет читать лишние страницы А где выгода? Divide et impera - еще римляне говорили. [/offtopic] Geronemo Думаю будет очень много наиразнообразнейших запросовБаза это ответ на вопрос. Без условий задачи ответ смысла не имеет. Например 42 это правильный ответ? Поставьте задачу, пропишите все условия как если бы их рассказал заказчик. Потом исходя из условий проектируйте базу. Не запрягайте телегу впереди лошади. Geronemo с целью освоения SQLИщите упражнения по SQL. Там будут стандартные условия и ответ с которым можно будет сличить. Geronemo Также мне похоже надо в таблицу Book добавить поле 'текущее количество книг в наличии'. Это уже называется денормализация - нарушение принципа SPOT (по запросу лога взятий/возвратов количество будет одно, в поле другое - кому верить?) Денормализация будет на следующем курсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 17:59 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
Geronemo....Ладно, пусть будет 1 таблица, где будут и писатели и читатели.... ну, пришёл к Вам живой Классик и взял чо-нить 'из своего' а потом вернул... о засада..))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 18:07 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
Скажите, пожалуйста, что не так в создании такой процедуры MySQL use Library; drop procedure if exists newPerson; create procedure newPerson ( firstName varchar(20), lastName varchar(20), isAuthor boolean) begin insert into Person (firstName, lastName, isAuthor) values (firstName, lastName, isAuthor); end Красненьким подсвечено, что ошибка там где isAuthor); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 18:17 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
1001 КАЖДАЯ книга (ея экземпляр) - имеет свой идентификатор типа - ИнвНомер (..на 17-й странице..)А вот это совершенно не факт. И как раз для таких моментов нужен заказчик. 2 Geronemo Давайте я вам помогу Итак имеем библиотеку - книги, авторы, читатели Действия (запросы) библиотекарь добавляет книгу (или экземпляры) в библиотеку читатель ищет книгу читатель берет книгу читатель возвращает книгу читатель смотрит наличие книги в библиотеке читатель смотрит кому выдавали экземпляры книги. библиотекарь списывает экземпляр книги. Geronemo Кстати, появился вопрос по синтаксису.Идите в форум для вашей СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 18:20 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
[quot SERG1257]DarkMaster Geronemo Также мне похоже надо в таблицу Book добавить поле 'текущее количество книг в наличии'. Это уже называется денормализация - нарушение принципа SPOT (по запросу лога взятий/возвратов количество будет одно, в поле другое - кому верить?) Денормализация будет на следующем курсе. Ну на практике существует такое понятие, как книга потеряна/украдена. Допустим раз в год производится переучет и эти данные приводятся друг к другу. Думаю полю 'текущее количество книг в наличии' можно доверять больше, т. к. библиотекарь пошел и посмотрел, сколько их на полке по факту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 18:41 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
SERG12571001 КАЖДАЯ книга (ея экземпляр) - имеет свой идентификатор типа - ИнвНомер (..на 17-й странице..)А вот это совершенно не факт. И как раз для таких моментов нужен заказчик. 2 Geronemo Давайте я вам помогу Итак имеем библиотеку - книги, авторы, читатели Действия (запросы) библиотекарь добавляет книгу (или экземпляры) в библиотеку читатель ищет книгу читатель берет книгу читатель возвращает книгу читатель смотрит наличие книги в библиотеке читатель смотрит кому выдавали экземпляры книги. библиотекарь списывает экземпляр книги. Geronemo Кстати, появился вопрос по синтаксису.Идите в форум для вашей СУБД во-во это - движняк где надо - он - во времени... автор...Итак имеем библиотеку - книги, авторы, читатели...прально, а так же примитивно - красиваыеБиблиотекарши,помещение, стеллаж, полка...и тд SERG1257 ..А вот это совершенно не факт. И как раз для таких моментов нужен заказчик... :)) пылится себе где-то некий экземпляр и даже не знает, что есть какой-то там - Заказчик и не только... ..((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 19:00 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
SERG12571001 КАЖДАЯ книга (ея экземпляр) - имеет свой идентификатор типа - ИнвНомер (..на 17-й странице..)А вот это совершенно не факт. И как раз для таких моментов нужен заказчик. 2 Geronemo Давайте я вам помогу Итак имеем библиотеку - книги, авторы, читатели Действия (запросы) библиотекарь добавляет книгу (или экземпляры) в библиотеку читатель ищет книгу читатель берет книгу читатель возвращает книгу читатель смотрит наличие книги в библиотеке читатель смотрит кому выдавали экземпляры книги. библиотекарь списывает экземпляр книги. Geronemo Кстати, появился вопрос по синтаксису.Идите в форум для вашей СУБД Попробую тоже придумать какой-то список действий 1. В библиотеку пришел новый человек 2. В библиотеку поступила новая книга (n-экземпляров, возможно она уже есть в кол-ве m-экземпляров) 3. Читатель ищет книгу (по разным параметрам, по автору, какое-то конкретное произведение и т. д.) 4. Читатель берет книгу почитать 5. Читатель возвращает книгу. 6. Библиотекарь смотрит кому выдавали экземпляры книги (каким читателям, сколько всего раз и т. д.) 7. Библиотекарь смотрит как часто берут книги того или иного автора (тут тоже можно посмотреть сколько все в сумме брали и сколько каждый читатель в отдельности). 8. Библиотекарь списывает экземпляр книги (если был 1, то будет 0, запись о книге не удаляем). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 20:42 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
Geronemo ... Попробую тоже придумать какой-то список действий 1. В библиотеку пришел новый человек 2. В библиотеку поступила новая книга (n-экземпляров, возможно она уже есть в кол-ве m-экземпляров) сначала как можно правильнее построить БД а уж потом пусть 3. Читатель ищет книгу (по разным параметрам, по автору, какое-то конкретное произведение и т. д.) 4. Читатель берет книгу почитать 5. Читатель возвращает книгу. 6. Библиотекарь смотрит кому выдавали экземпляры книги (каким читателям, сколько всего раз и т. д.) 7. Библиотекарь смотрит как часто берут книги того или иного автора (тут тоже можно посмотреть сколько все в сумме брали и сколько каждый читатель в отдельности). 8. Библиотекарь списывает экземпляр книги (если был 1, то будет 0, запись о книге не удаляем). Вы не спеша определитесь - в сутях - в процессах ... порисуйте их ... правильно будет периодически поспать (перекурить) во сне еще много-чо приснится...)) и, эта, пробуй-пробуй-пробуй ...до некоего просветления ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 21:13 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
Geronemo Попробую тоже придумать какой-то список действийВот и пишите SQL для каждого действия. Потом можно напихать данных побольше и задумыватся об индексировании. Дальше пусть заказчик изменит свою точку зрения? согласно 1001 и потребует учитывать книги поштучно. Переделайте базу и перепишите SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 22:23 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
1001правильно будет периодически поспать (перекурить) во сне еще много-чо приснится...)) и, эта, пробуй-пробуй-пробуй ...до некоего просветления ;)) Пошел спать. Я уже не раз замечал, что с утра мозги начинают отрабатывать то, что не получилось вечером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 22:45 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
SERG1257Geronemo Попробую тоже придумать какой-то список действийВот и пишите SQL для каждого действия. Потом можно напихать данных побольше и задумыватся об индексировании. Дальше пусть заказчик изменит свою точку зрения? согласно 1001 и потребует учитывать книги поштучно. Переделайте базу и перепишите SQL. ага Вы своим мозгом его закомплексуете сразу - индексы, скл-запросы и тд... заказчик опять же какой то... сам в собственно-придуманном потырыкается пусть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 22:53 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
SERG1257. Вот недостатки навскидку 1 увеличили вероятность ошибки (оптимизатор не заругается на левую таблицу) 2 убрали возможность дать разные права 3 блокировка таблицы (типа индексы перестоить) блокирует обе таблицы 4 полный скан будет читать лишние страницы 1) Давайте сначала доберемся до SQL запросов, ага? Тогда и будем учить оптимизатор. 2) О каких разных права вы говорите? 3) Стоп. Я из 2-х таблиц сделал одну. Где вторая? Или вы сами с собой спорите? И перестройка индекса - оно конечно да, операция ежечасная. 4) А поподробнее можно? При правильных запросах и индексах и полный скан? P.S. А можно все-таки ответить на вопрос - вот есть два человека - Азимов и Брэдбери - оба они авторы - могут ли они читать произведения друг друга? P.P.S. Интересно, как с таким подходом вы будете каталог библиотеки с иерархией жанров строить ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 02:47 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
[оффтопик] >1) Давайте сначала доберемся до SQL запросов, ага? Ага и в КАЖДЫЙ запрос не забудьте добавить условие ISREADER или ISAUTHOR, а потом взгляните на код и сравните с разными таблицами. Где код чище, и вероятность облажатся меньше. >2) О каких разных права вы говорите? Я даю права одному пользователю на одну таблицу, другому на другую. Вы даете права обоим пользователям на обе таблицы >3) Стоп. Я из 2-х таблиц сделал одну. Где вторая? Или вы сами с собой спорите? Я провожу обслуживание большой таблицы - вторая доступна. У пока долгое обслуживание обьединенной таблицы не кончится заблокированы все. >4) А поподробнее можно? При правильных запросах и индексах и полный скан? Дополнительного скана не будет только при запросе одной строки. При любых других придется читать лишние страницы. >P.S. А можно все-таки ответить на вопрос - вот есть два человека - Азимов и Брэдбери - оба они авторы - могут ли они читать произведения друг друга? Заведу таблицу ЛЮДИ и еще две таблицы читатели со ссылкой на ЛЮДИ_id и писатели со ссылкой на ЛЮДИ_id >P.P.S. Интересно, как с таким подходом вы будете каталог библиотеки с иерархией жанров строить ;) Сформулируйте задачу постою. А теперь в порядке ответной любезности, назовите выгоды объединения таблиц. [/оффтопик] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 04:14 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
SERG1257[оффтопик] >1) Давайте сначала доберемся до SQL запросов, ага? Ага и в КАЖДЫЙ запрос не забудьте добавить условие ISREADER или ISAUTHOR, а потом взгляните на код и сравните с разными таблицами. Где код чище, и вероятность облажатся меньше. Облажатся можно везьде. По поводу чистоты кода и прочего - фигня-с... Мы живем в реальном мире. SERG1257>2) О каких разных права вы говорите? Я даю права одному пользователю на одну таблицу, другому на другую. Вы даете права обоим пользователям на обе таблицы У меня ОДНА таблица. Мне незачем раздавать права на несколько таблиц. Вы усложнили админ. процедуру по раздаче прав. Еще один повод для облажаться, если с правами будет что-то не так. SERG1257>3) Стоп. Я из 2-х таблиц сделал одну. Где вторая? Или вы сами с собой спорите? Я провожу обслуживание большой таблицы - вторая доступна. У пока долгое обслуживание обьединенной таблицы не кончится заблокированы все. Сервер? Вы уверены, что сказанное вами истина в последней инстанции? Позвольте напомнить вам - есть блокировочники, а есть версионники. SERG1257>4) А поподробнее можно? При правильных запросах и индексах и полный скан? Дополнительного скана не будет только при запросе одной строки. При любых других придется читать лишние страницы. Ну будет как минимум скан по индексу, но от этого никуда не денешся при любом расскладе. Вы же говорили о полном скане, не так ли? SERG1257>P.S. А можно все-таки ответить на вопрос - вот есть два человека - Азимов и Брэдбери - оба они авторы - могут ли они читать произведения друг друга? Заведу таблицу ЛЮДИ и еще две таблицы читатели со ссылкой на ЛЮДИ_id и писатели со ссылкой на ЛЮДИ_id Занафига? А потом заведете таблицы ЖЕНЩИНЫ и МУЖЧИНЫ? И куда ж ваша красота запросов денется? Это просто ж простор для "облажаться" ;) Может все-таки во избежание сумбура стоит разделить понятия "сущность" и "аттрибут"? SERG1257>P.P.S. Интересно, как с таким подходом вы будете каталог библиотеки с иерархией жанров строить ;) Сформулируйте задачу постою. Дык предложил-же - постройте каталог для библиотеки. SERG1257А теперь в порядке ответной любезности, назовите выгоды объединения таблиц. [/оффтопик] Постарался назвать. Ну хотя бы то, что идет оперирование одной сущностью - "человек". И добавление нового атрибута (я предложил "пол") никак не усложняет жизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 05:04 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
DarkMaster Мне незачем раздавать права на несколько таблиц. Вы усложнили админ. процедуру по раздаче прав.Зачем тогда останавливаться. Пусть у вас все пользователи будут иметь все права. И администрирование будет упрощено, так? DarkMaster Позвольте напомнить вам - есть блокировочники, а есть версионники. Но суть проблемы вы уловили. DarkMaster Ну будет как минимум скан по индексу, но от этого никуда не денешся при любом расскладе. Вы же говорили о полном скане, не так ли? Конечно. Но у меня идет скан таблиц или индексов ОДНОЙ таблицы, а у вас объединенной из двух. DarkMaster Занафига?Потому что это типовой прием для реализации наследования. Вас способ - запихать в одну таблицу тоже годится, но для задач библиотеки (тем более учебной задачи) недостатки перевешивают достоинства. DarkMaster Дык предложил-же - постройте каталог для библиотеки. Если бы вы знали сколько проблем возникает из-за недопонимания, такие очевидные и однозначные вещи разные люди трактуют по-разному. Откройте другой топик, изложите максимально подробное описание задачи с граничными условиями и тогда получите свой ответ. DarkMaster Постарался назвать.Э нет. Вы пока только ругали мои аргументы, но не привели своих. DarkMaster Ну хотя бы то, что идет оперирование одной сущностью - "человек"В задаче библиотеки сущности ДВЕ - читатели и писатели. Книжки читатель берет, а писатель пишет. У них совершенно разные атрибуты. Давайте прекратим оффтопик. Я предпочитаю все разложить по полочкам, вы любите валить все в кучу, вряд ли мы что либо докажем ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 05:34 |
|
||
|
Создал базу данных для освоения SQL
|
|||
|---|---|---|---|
|
#18+
> В задаче библиотеки сущности ДВЕ - читатели и писатели. Вообще говоря, одна сущность. На месте автора вопроса я бы пошёл другим путём: взял бы готовый пакет для управления библиотекой и попытался разобраться в структуре базы данных. Заодно бы получил полезные представления о классификации, кодировании и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 07:19 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38740116&tid=1540787]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 185ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...