Страница 1 из 1

Проектирование БД с нуля (как ?)

Добавлено: 2012.01.09, 16:24
sequester
Всем привет.
Я новенький.
Создал свой блог по туториалу, примерно понял, что к чему.
Только вот с базами толком опыта нет.
Пожалуйста, поделитесь ссылками, где почитать о проектировании БД.
Т.е. хотелось бы такую схему самому делать http://yiiframework.ru/doc/blog/ru/start.design
Надеюсь на понимание.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.09, 17:12
Joseph Jevelin
Вот неплохие ссылки из моих закладок:
-- Первая (создание таблиц)
-- Вторая
-- Третья

Главное попытаться понять основы, дальше будет легче. Это не для MySQL, но каждая SQL похожа друг на друга. Переквалифицироваться будет не тяжело.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.09, 17:42
sequester
спасибо.
кто то еще желает ? (=

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.09, 23:10
sequester
Вы немного не поняли.
я не просил чтива по теории, я просил чтива о философии проектирования

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.10, 00:11
esche
sequester писал(а):Вы немного не поняли.
я не просил чтива по теории, я просил чтива о философии проектирования
раз, два - и там, и там.. и "для новичков".. и "по-взрослому".. на выбор.. и с отзывами..
Можно начать с википедии, или со статей вроде http://habrahabr.ru/blogs/refactoring/129195/
Практические задачи можно порешать на http://sql-ex.ru/ (не совсем проектирование, но помогает и в понимании запросов и в понимании структуры)
Удачи в освоении.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.10, 00:21
because
esche писал(а):
sequester писал(а):Вы немного не поняли.
я не просил чтива по теории, я просил чтива о философии проектирования
раз, два - и там, и там.. и "для новичков".. и "по-взрослому".. на выбор.. и с отзывами..
Можно начать с википедии, или со статей вроде http://habrahabr.ru/blogs/refactoring/129195/
Практические задачи можно порешать на http://sql-ex.ru/ (не совсем проектирование, но помогает и в понимании запросов и в понимании структуры)
Удачи в освоении.
ткнув на первую ссылку, я прослезился

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.10, 09:22
sequester
пасиб.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.10, 14:20
sequester
Вобщем спасибо, почитал, примерно понял.
Появились вопросы:
1. Где должны быть связи. Либо только в базе? Или и в базе и в AR ?
2. Если в базе не будет связей через ключи, могу я пользоваться так http://yiiframework.ru/doc/guide/ru/database.ar ?
3. Когда выбирать, когда пользовать AR, а когда RAR ?

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.10, 22:15
esche
sequester писал(а):Вобщем спасибо, почитал, примерно понял.
Появились вопросы:
1. Где должны быть связи. Либо только в базе? Или и в базе и в AR ?
2. Если в базе не будет связей через ключи, могу я пользоваться так http://yiiframework.ru/doc/guide/ru/database.ar ?
3. Когда выбирать, когда пользовать AR, а когда RAR ?
1. Первым делом, связи должны быть "в голове". Если связи будут в базе, в AR они попадут "автоматически" при генерации CRUD. Ну и целостность базы - как "бонус". Но для работы AR их наличие в базе не обязательно.
2. да. Можно даже и так http://yiiframework.ru/doc/guide/ru/database.arr , только прописывать "придется" ручками
3. если есть реляции - удобнее использовать реляционную :) Читать http://yiiframework.ru/doc/guide/ru/database.arr

p.s. чтоб лучше понять смысл AR, можно попробовать сделать выборку на "чистом PHP" или при помощи DAO в Yii.. к примеру тех же POST->комментарии (или актер-фильмы) и с использованием AR. Это не говоря про плюшки вроде beforeSave и валидации

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.11, 11:35
sequester
благодарю, всё ясно.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.11, 16:02
sequester
никто не подскажет, что значит ?

Код: Выделить всё

ON DELETE CASCADE ON UPDATE RESTRICT
а то не нашёл, чтобы по русскому объяснялось, всё какие то термины заумные.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.11, 16:49
TM123
Действие по установленным связям,

Первое означает что если вы таблице внешних ключей удалите запись, то в связанной таблице будут удалены все записи с таким значением внешнего ключа. С одной стороны удобно, не надо все чистить руками, с другой стороны элегантным движением руки можно грохнуть всю базу, написав например truncate к таблице внешних ключей. В общем не стоит особо злоупотреблять данной возможностью.

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

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.11, 18:25
BuCeFaL
sequester писал(а):Вы немного не поняли.
я не просил чтива по теории, я просил чтива о философии проектирования
гугл
реляционные базы данных и нормальные формы

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.11, 23:35
sequester
спасибо за ответы

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.12, 09:41
Jampire
TM123 писал(а):Второе тоже самое что и NO ACTION, т.е. если в связанных таблицах имеется запись с соответствующим значением внешнего ключа, то операция обломается с ошибкой.
Не тоже самое. NO ACTION позволит выполнить операцию в связанных таблицах, но данные в текущей таблице изменены не будут.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.12, 11:52
TM123
но данные в текущей таблице изменены не будут
Именно так оно и будет, т.к. данные изменены не будут, то нарушится целостность и это приведет к ошибке.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.16, 22:43
SPolischook
sequester писал(а):спасибо.
кто то еще желает ? (=
Задал на днях тот же вопрос - как спроектировать БД. Понял, что для того чтобы сделать лучше чем у других нужно посмотреть как это сделано у других. Я для примера рекомендую посмотреть организацию БД известных CMS.

Re: Проектирование БД с нуля (как ?)

Добавлено: 2012.01.17, 01:12
sequester
для того чтобы сделать лучше чем у других
вопрос не в том, чтобы лучше чем у других, а в том чтобы своё хорошо.

кстати, у вордпресса вообще связей нет (: