Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Вниз

К вопросу о культурном проектировании реляционных БД   Найти похожие ветки 

 
Kostafey ©   (2007-12-22 14:57) [0]

Работать-то оно может по-всякому, но абы-как почему-то больше не хочется.
Если это имеет в данном случае значение, использую MS SQL Server 2005.
Возникают у меня такие вопросы:

1)Каков должен быть регистр символов в названии таблиц, полей ?

2)Является ли нежелательным использование занака _ в названии таблиц, полей ?

3)Как лучше всего называть поля-иденитификаторы и внешние ключи

4)Критично ли использование излишних связей, например
есть таблицы Страна, Субъект(связанный со Страной), Город(связвнный с Субъектом),
так мы Город еще и к Стране привязываем

5)Допускается ли использовать 1 поле для хранения данных разных с точки
зрения модели БД.
Например есть следующая структура:
таблица Материалы_на_складе, поля:
Id_склада
Алюминий
Чугуний
Бетоний
Деревяний


заменяем на:

Таблица Материалы_на_складе, поля:
Id_склада
Вид_вещетсва
Количество


Таблица Вид_вещетсва, поля:
id_вида
Вид

Сответственно, 1 склад уже будут характеризовать несколько записей

6)Допускается ли исползовать одно и тоже поле в качестве внешнего
ключа к нескольким таблицам (информация к какой именно таблице является
внешним ключ в данной записи находиться в другом поле)

Буду очень признателен за любые советы.


 
Petr V. Abramov ©   (2007-12-22 15:44) [1]

1. согласно внутреннему стандарту
2. см. 1.
3. осмысленно
4. некритично, но нежелательно без веских оснований, как и любая денормализация
5.

> заменяем на:

именно так и делаем.
потму что как только появятся стекляний и оловяний, структура базы и куча кода полетит к чертям. Если кто-то от заказчика утверждает, что стекляний и оловяний не появятся никогда, покивай, но не верь.

6. Допускается, но лучше не допускать.


 
Kostafey ©   (2007-12-22 15:52) [2]

> [1] Petr V. Abramov ©   (22.12.07 15:44)
> 1. согласно внутреннему стандарту
> 2. см. 1.

Я и есть этот стандарт :)


> 3. осмысленно

Ну вот например, для приведенной в п.5 структуры:
Sklad
 Id
 Id_VidVeshestva
 Kol

VidVeshestva
 Id
 Vid
Нормально?


> 5.
>
> > заменяем на:
>
> именно так и делаем.
> потму что как только появятся стекляний и оловяний, структура
> базы и куча кода полетит к чертям. Если кто-то от заказчика
> утверждает, что стекляний и оловяний не появятся никогда,
> покивай, но не верь.
>
> 6. Допускается, но лучше не допускать.

Понял, спасибо.


 
Petr V. Abramov ©   (2007-12-22 15:57) [3]

> Kostafey ©   (22.12.07 15:52) [2]
я по-английски называю, кому-то больше транслитерацией нравится.
тут холивар большой был на эту тему.


 
Petr V. Abramov ©   (2007-12-22 15:58) [4]

если называть по английски, ни у кого не возникнет подозрения, что проектировал первокурсник :)


 
kaif ©   (2007-12-22 16:04) [5]

4. Либо устраняем поле Город в Субъекте, либо делаем внешний ключ сразу на два поля (Субъект.Город, Страна -> Город, Страна). Для этого Таблица Город должна иметь альтернативный уникальный ключ Город, Страна. Не знаю, позволяет ли MS SQL задавать внешние ключи на группу полей - IB позволяет. Я бы все же устранил поле Страна в Субъекте.
5. Однозначно требует нормализации.
6. Неужели MS SQL такое позволяет декларативно объявлять? Я бы так не стал делать, если честно. Уж лучше создать некий "журнал", в котором дублировать элементы из разных таблиц и на него ссылаться.

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


 
Kostafey ©   (2007-12-22 16:05) [6]

> [3] Petr V. Abramov ©   (22.12.07 15:57)
> > Kostafey ©   (22.12.07 15:52) [2]
> я по-английски называю, кому-то больше транслитерацией нравится.
> тут холивар большой был на эту тему.

Как же я пропустил его :)
Ссылочки не сохранилось?


> [4] Petr V. Abramov ©   (22.12.07 15:58)
> если называть по английски, ни у кого не возникнет подозрения,
> что проектировал первокурсник :)

Это почему?
Я вообще видел вперемешку написано.


 
Petr V. Abramov ©   (2007-12-22 16:07) [7]

> Kostafey ©   (22.12.07 16:05) [6]
> Я вообще видел вперемешку написано
говорит об отсутствии стандартов


 
kaif ©   (2007-12-22 16:15) [8]

Правильно писать Id_VidVeschestva
:))


 
Kostafey ©   (2007-12-22 16:16) [9]

> [7] Petr V. Abramov ©   (22.12.07 16:07)
> > Kostafey ©   (22.12.07 16:05) [6]
> > Я вообще видел вперемешку написано
> говорит об отсутствии стандартов

Вот и хочу я его ввести.
Но из пальца высасывать - одно, сходить за советом - другое.


> [5] kaif ©   (22.12.07 16:04)
> 4. Либо устраняем поле Город в Субъекте,

Так и нет его.
Структура такова:
Страна:
 ИД
 Название
Субъект:
 ИД
 ИД_Страны
 Название
Город:
 ИД
 ИД_Субъекта
 ИД_Страны
 Название


> 5. Однозначно требует нормализации.

Угу, понял.


> 6. Неужели MS SQL такое позволяет декларативно объявлять?

Ну вот товарищ умудрился.

> Уж лучше создать некий "журнал", в котором дублировать элементы
> из разных таблиц и на него ссылаться.

Это как?


> В общем, все что касается стандарта (регистр букв, названия
> полей) - дело вкуса и здесь важнее единообразие. А что касатся
> нормализации - лучше все изначально нормализовать по максимуму,
> а потом что-то с умом денормализовать.

Согласен. Спасибо.


 
Kostafey ©   (2007-12-22 16:18) [10]

> [8] kaif ©   (22.12.07 16:15)
> Правильно писать Id_VidVeschestva
> :))

Да, у меня где-то валялась таблица транслита :)


 
Petr V. Abramov ©   (2007-12-22 16:30) [11]

я так думаю 6. напрямую растет из 5.


 
Kostafey ©   (2007-12-22 16:33) [12]

> [11] Petr V. Abramov ©   (22.12.07 16:30)
> я так думаю 6. напрямую растет из 5.

Не совсем понял. Это как?


 
kaif ©   (2007-12-22 16:34) [13]

> Уж лучше создать некий "журнал", в котором дублировать элементы
> из разных таблиц и на него ссылаться.

Это как?


Допустим у Вас имеется 4 таблицы: счета выставленые, счета полученные, накладные исходящие, накладные входящие. И еще могу появиться новые таблицы со своеобразными полями.
А Вы хотите иметь общую подчиненную таблицу позиций с одинаковой структурой для всех подобных документов. Содержащую поля: товар, кол-во, цена без НДС, НДС.
Тогда можно сделать общий "журнал", в который переписывать строки из тех 4 таблиц в каком-то сокращенном виде, например в виде ID, тип документа, дата, сумма, а на него ссылаться из талицы позиций.


 
Kostafey ©   (2007-12-22 16:41) [14]

> [13] kaif ©   (22.12.07 16:34)
> > Уж лучше создать некий "журнал", в котором дублировать
> элементы
> > из разных таблиц и на него ссылаться.
>
> Это как?

Понял, но требуется не сокращенная, а полная информация.

Как вариант решения:
Сделать в общей подчиненной таблице поля-внешние ключи ко
всем таблицам Счетов, и отдельно поле для того, чтобы
характеризовать к какой именно таблице счетов
следует обращаться в текущей записи.


 
kaif ©   (2007-12-22 16:42) [15]

Это позволит сделать более изящную навигацию и фильтрацию документов, не прибегая к конструкциям типа UNION.
В принципе подобные "журналы" и есть некоторый безопасный способ денормализации.
Сначала мы все строго разбиваем на отдельные сущности, а потом строим журналы, в которых эти сущности объединяем по наиболее общим полям.
Злоупотреблять этим не стоит, но иногда выигрыш может быть невероятным.
Представьте себе 50 таблиц типизированных товаров с их особенными полями и общий журнал - таблицу, в которую сведены просто их ID и наименование. В таких случаях удобно иметь сквозной уникальный ID на все товары. В IB для этого удобно использовать генераторы. В MS SQL не знаю. ГУИДы какие-нибудь страшные, возможно, сойдут :)


 
kaif ©   (2007-12-22 16:43) [16]

Kostafey ©   (22.12.07 16:41) [14]
Сделать в общей подчиненной таблице поля-внешние ключи ко
всем таблицам Счетов, и отдельно поле для того, чтобы
характеризовать к какой именно таблице счетов
следует обращаться в текущей записи.


Я не представляю, как такое можно объявитьв MS SQL.
И еще меньше я себе представляю, как потом делать SQL-запросы, например, как запросить все "позиции", объединенные с их "шапками".


 
Sergey Masloff   (2007-12-22 16:52) [17]

1-4 к проектированию отношения не имеют.
5 Так и нужно в большинстве случаев
6 Если нельзя но очень хочется (и можешь обосновать почему хочется) то можно


 
Kostafey ©   (2007-12-22 16:56) [18]


> [16] kaif ©   (22.12.07 16:43)
Я не представляю, как такое можно объявитьв MS SQL.

Склад
 Ид_бетония
 Ид_чугуния
 Нужный_Ид //1-бетоний, 2-чугуний

Бетоний
 ИД
 прочие_поля

Чугуний
 ИД
 прочие_поля

пример содержимое таблицы Склад:
ИД |  Ид_бетония | Ид_чугуния | Нужный_Ид
0   |  34             | null           | 1
1   |  45             | null           | 1
2   |  null           | 13             | 2
3   |  null           | 89             | 2


> И еще меньше я себе представляю, как потом делать SQL-запросы,
> например, как запросить все "позиции", объединенные с их
> "шапками".

SELECT *
FROM Склад
JOIN Бетоний on (Бетоний.ИД = Склад.Ид_бетония)
WHERE Склад.Нужный_Ид = 1
UNION
SELECT *
FROM Склад
JOIN Чугуний on (Чугуний.ИД = Склад.Ид_чугуния)
WHERE Склад.Нужный_Ид = 2


 
Kostafey ©   (2007-12-22 17:01) [19]

> [17] Sergey Masloff   (22.12.07 16:52)
> 1-4 к проектированию отношения не имеют.

Согласен, я просто думал есть какой-то аналог
Code Conventions :)


> 5 Так и нужно в большинстве случаев

Уяснил.


> 6 Если нельзя но очень хочется (и можешь обосновать почему
> хочется) то можно

Хорошо, ну а как вообще тогда реализовывать обсуждаемое в

> [14] Kostafey ©   (22.12.07 16:41)


 
Sergey Masloff   (2007-12-22 17:17) [20]

Kostafey ©   (22.12.07 17:01) [19]
А я не понял что обсуждается. Типа "наследования"? Когда в двух таблицах с разными сущностями много похожих полей? Типа "юр.лица" и "физ. лица" но все они "клиенты"? Можно в одну таблицу вынести все общее. Тебя беспокоит что поле ID в этой таблице в зависимости от типа клиента будет ключем на таблицу - "расширение"?
 Я бы сделал главной таблицей "клиенты" под ней 1:1 "таблицы расширений"
Поставил бы защиту от редактирования на "главную" а при записи в "детальные" заполнял бы и "главную". Как один из вариантов, на самом деле имеющих право на жизнь вариантов много


 
Johnmen ©   (2007-12-22 17:19) [21]

Допустимо всё, что напрямую не запрещено теорией.
Применяем правила нормализации, но имеем право от них отступать, если это даст эффект в скорости, объеме и т.п.
Всё остальное неспешный трёп :)
Если есть конкретный вопрос, то именно его и следует обсасывать...


 
Sergey Masloff   (2007-12-22 17:20) [22]

Johnmen ©   (22.12.07 17:19) [21]
>Допустимо всё, что напрямую не запрещено теорией.
Я бы расширил: даже то что запрещено теорией можно иногда нарушать (если есть уверенность в своей правоте и возможность проверить)


 
Johnmen ©   (2007-12-22 17:23) [23]


> Sergey Masloff   (22.12.07 17:20) [22]

Да, пожалуй.


 
kaif ©   (2007-12-22 17:26) [24]

В общем, нарушение правил нормализации, как и правил дорожного движения, должно быть осознанным и точно рассчитанным. Иначе неминуемы ДТП.


 
Kostafey ©   (2007-12-22 17:48) [25]

> [20] Sergey Masloff   (22.12.07 17:17)
> Kostafey ©   (22.12.07 17:01) [19]
> А я не понял что обсуждается. Типа "наследования"? Когда
> в двух таблицах с разными сущностями много похожих полей?
> Типа "юр.лица" и "физ. лица" но все они "клиенты"? Можно
> в одну таблицу вынести все общее. Тебя беспокоит что поле
> ID в этой таблице в зависимости от типа клиента будет ключем
> на таблицу - "расширение"?

Отличный пример. В [18] Kostafey ©   (22.12.07 16:56)
я хотел лишь продемонстрировать механизм, но никак не
сущность.


> Я бы сделал главной таблицей "клиенты" под ней 1:1 "таблицы
> расширений"

Т.е. все-таки "1 поле связи на все детальные", вместо
"на каждую детальную - свое поле как в [18]"

> Поставил бы защиту от редактирования на "главную" а при
> записи в "детальные" заполнял бы и "главную". Как один из
> вариантов, на самом деле имеющих право на жизнь вариантов
> много

Не совсем понял. Т.е. редактирование таблиц
осущствляем только вместе: голавная + детальная?
Ну так программно оно так и реализуется.
Или имеется в виду реализовать в самой БД?


 
MsGuns ©   (2007-12-22 19:51) [26]

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


 
tesseract ©   (2007-12-22 21:43) [27]


> Советую прежде чем приступать к проектированию таблиц (полей
> таблиц, межтабличных связей и т.д.) "нарисовать" объектную
> модель предмета автоматизации, в которой каждую конечную
> сущность ("Страна", "Склад", "Материал", "Документ" и т.
> д.)


UML-ом попахивает. На самом деле после 2-3 лет работы автоматически проектируешь. Как привык на данной платформе. Но сущности это все фигня, вот когда сводные таблицы движений/остатков начинаешь делать, вот тут трижды подумаешь какую избыточность вносить.


> А я не понял что обсуждается. Типа "наследования"? Когда
> в двух таблицах с разными сущностями много похожих полей?
>  Типа "юр.лица" и "физ. лица" но все они "клиенты"? Можно
> в одну таблицу вынести все общее.


Это уже объектно-реляцоныые базы называеться. Постгресс, cache, Oracle умеют с такими данными работать. Очень кстати удобно при рефакторинге базы - код можно не трогать.


 
MsGuns ©   (2007-12-22 21:50) [28]

>tesseract ©   (22.12.07 21:43) [27]

>UML-ом попахивает. На самом деле после 2-3 лет работы автоматически проектируешь.

Есть такие предметные области, что и 20 лет опыта не хватает, чтобы "автоматически проектировать"


 
Anatoly Podgoretsky ©   (2007-12-22 21:53) [29]


> Kostafey ©   (22.12.07 15:52) [2]
> > [1] Petr V. Abramov ©   (22.12.07 15:44)
> > 1. согласно внутреннему стандарту
> > 2. см. 1.
>
> Я и есть этот стандарт :)

Много на себя ведешь, СУБД имеет возможность дать тебе по ушам


 
Loginov Dmitry ©   (2007-12-22 23:54) [30]

> 1)Каков должен быть регистр символов в названии таблиц,
> полей ?


От самой базы зависит. В InterBase принято все поля вводить заглавными буквами. В табличках DBF - также. В Paradox - прописные и строчные буквы чередуются. Лучше просто смотреть поставляемые с СУБД примеры и придерживаться того же стиля.


> 2)Является ли нежелательным использование занака _ в названии
> таблиц, полей ?


В InterBase данный символ - стандарт. В Paradox - практически не применяется. Насчет MS SQL Server - не знаю. Рекомендация та же, что и в предыдущем пункте.


> 3)Как лучше всего называть поля-иденитификаторы и внешние
> ключи


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


> 4)Критично ли использование излишних связей, например
> есть таблицы Страна, Субъект(связанный со Страной), Город(связвнный
> с Субъектом),
> так мы Город еще и к Стране привязываем


Все правильно! Их следует связывать, причем именно в таком порядке!


> 5)Допускается ли использовать 1 поле для хранения данных
> разных с точки
> зрения модели БД.
> Например есть следующая структура:
> таблица Материалы_на_складе, поля:
> Id_склада
> Алюминий
> Чугуний
> Бетоний
> Деревяний


Если набор материалов фиксированный, то ради бога! Можно и так! Но чаще всего каждый материал обладает каким-то набором дополнительных свойств. К тому же номенклатура материалов может расширяться! Тогда данная схема становится неудобной.


> заменяем на:
>
> Таблица Материалы_на_складе, поля:
> Id_склада
> Вид_вещетсва
> Количество
>
> Таблица Вид_вещетсва, поля:
> id_вида
> Вид


> Сответственно, 1 склад уже будут характеризовать несколько
> записей


Это более гибкий подход!


> 6)Допускается ли исползовать одно и тоже поле в качестве
> внешнего
> ключа к нескольким таблицам (информация к какой именно таблице
> является
> внешним ключ в данной записи находиться в другом поле)


Ну это уже какое-то извращение!


 
Loginov Dmitry ©   (2007-12-22 23:59) [31]

> Так и нет его.
> Структура такова:
> Страна:
> ИД
> Название
> Субъект:
> ИД
> ИД_Страны
> Название
> Город:
> ИД
> ИД_Субъекта
> ИД_Страны -
это здесь совершенно ненужно, т.к. субъект однозначно определяет страну!
> Название



 
Petr V. Abramov ©   (2007-12-23 02:45) [32]

> tesseract ©   (22.12.07 21:43) [27]
Oracle умеют с такими данными работать. Очень кстати удобно при рефакторинге базы - код можно не трогать.
и Oracle это не умеет, и код надо трогать :)
11-й Oracle пока не трогал :)


 
Kostafey ©   (2007-12-23 14:11) [33]

> [26] MsGuns ©   (22.12.07 19:51)

Вот все это, конечно хорошо, минус в том, что есть некая
преемственность от старых решений.
БД уже была реализована в Access и эксплуатировалась,
проектировалоса она - абы работало.
Я за то чтоыб проектировать с 0, но заказчик ничего
другого как модифицировать уже сделанную в Access БД
и знать не хочет.


> [29] Anatoly Podgoretsky ©   (22.12.07 21:53)
> > Я и есть этот стандарт :)
>
> Много на себя ведешь, СУБД имеет возможность дать тебе по
> ушам

MS SQL Server точно не даст: хоть по-русски поля называй, не даст.


> [30] Loginov Dmitry ©   (22.12.07 23:54)
> Прежде всего имя любого поля лучше всего начинать с префикса
> - 2-3 символа, являющиеся сокращением имени таблицы. Этому
> правилу поддаются и поля-идентификаторы. При этом придумывать
> имена внешних ключей нет необходимости - они уже известны,
> т.к. являются первичными ключами связанных таблиц.

Раньше я так и делал. При небольшом количестве таблиц - очень удобно:
Gruppa:
 G_id
 G_name
Student:
 S_id
 S_FIO
 S_G_id //В какой группе студент

Select *
Form Student, Gruppa
Where S_G_id=G_id

Но когда таблиц много, я думаю лучше пользоваться
полным именем поля, т.е.:

Gruppa:
 id
 name
Student:
 id
 FIO
 Gruppa_id //В какой группе студент

Select *
Form Student, Gruppa
Where Student.Gruppa_id=Gruppa.id


 
Anatoly Podgoretsky ©   (2007-12-23 22:50) [34]


> MS SQL Server точно не даст: хоть по-русски поля называй,
>  не даст.

Даст, поскольку и там можно сделать чувствительность к регистру.

> 1)Каков должен быть регистр символов в названии таблиц,
> полей ?


 
Бакук ©   (2007-12-24 05:11) [35]

> Раньше я так и делал. При небольшом количестве таблиц —
> очень удобно:
> Gruppa:
> G_id
> G_name
> Student:
> S_id
> S_FIO
> S_G_id //В какой группе студент
>
> Select *
> Form Student, Gruppa
> Where S_G_id=G_id


Появляется еще одна таблица, название которой начинается на G и через некоторое время возникнет небольшая путаница, что же такое G_id (к какой именно таблице оно относится).

Я обычно делаю так. Поле «Код» в любой таблице всегда называется ID, а ссылки на другие таблицы маркируются как ID_ИмяТаблицы: ID_GROUP, ID_STUDENT etc.


> > 6)Допускается ли исползовать одно и тоже поле в качестве
>
> > внешнего
> > ключа к нескольким таблицам (информация к какой именно
> таблице
> > является
> > внешним ключ в данной записи находиться в другом поле)


А приведите пример, чтобы необходимо было использовать такой подход?


> 2)Является ли нежелательным использование занака _ в названии таблиц, полей ?


Я часто использую нижнее подчеркивание. Как здесь говорили, очень удобно таблицы группировать с помощью префикса. Например, AGR_, STR_, FIN_, CMT_
Да и если таблица называется замудренно, легче читать с подчеркиванием (из увиденного недавно: CLIENTSGROUPSRELATIONS, мне удобнее прочесть CLIENTS_GROUPS_RELATIONS, хотя конечно название изначально неудачное, уж слишком много букв :)


 
ZeroDivide ©   (2007-12-24 09:31) [36]


> 1)Каков должен быть регистр символов в названии таблиц,
> полей ?
>
> 2)Является ли нежелательным использование занака _ в названии
> таблиц, полей ?
>
> 3)Как лучше всего называть поля-иденитификаторы и внешние
> ключи


Главное все это называть однообразно. Т.е. в соответствии с каким-нибудь стандартом, пусть даже собственным, внутренним.


 
Anatoly Podgoretsky ©   (2007-12-24 11:14) [37]


> Раньше я так и делал.

Еще одна жертва венгерской нотации и работа с Паскалем не помогла.


 
tesseract ©   (2007-12-24 11:56) [38]


> и Oracle это не умеет, и код надо трогать :)11-й Oracle
> пока не трогал :)


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


 
Petr V. Abramov ©   (2007-12-24 12:08) [39]

> tesseract ©   (24.12.07 11:56) [38]
поддерживается, даже работает без особых глюков.
только на "добавленное поле" foreign key нельзя поставить, по крайней мере, у меня не получилось.
Синтаксические возможности есть, но не создается, выдает идиотские ошибки.
Поэтому ценность приближается к нулю


 
Kostafey ©   (2007-12-24 14:25) [40]

> [35] Бакук ©   (24.12.07 05:11)


> А приведите пример, чтобы необходимо было использовать такой
> подход?

[20] Sergey Masloff   (22.12.07 17:17)
очень хороший пример привел.

Со всем остальным согласен на 100%


> [37] Anatoly Podgoretsky ©   (24.12.07 11:14)
> > Раньше я так и делал.
> Еще одна жертва венгерской нотации и работа с Паскалем не
> помогла.

Каюсь, ибо я грешен, :)
теперь делаю по-другому
см. [33] Kostafey © :
> Но когда таблиц много, я думаю лучше пользоваться
> полным именем поля, т.е.:
>
> Gruppa:
> id
> name
> Student:
> id
> FIO
> Gruppa_id //В какой группе студент
>
> Select *
> Form Student, Gruppa
> Where Student.Gruppa_id=Gruppa.id



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.066 c
2-1199844321
Abcdef123
2008-01-09 05:05
2008.02.03
Почему не работает CTRL+(LeftClick Mouse)?


15-1196883191
Rouse_
2007-12-05 22:33
2008.02.03
Традиционное предновогоднее ММР


3-1190795966
Quart
2007-09-26 12:39
2008.02.03
Сохранение БД


15-1198835285
Cj
2007-12-28 12:48
2008.02.03
Раздвоение анкет


2-1199304844
aha
2008-01-02 23:14
2008.02.03
зашился в вычислениях CRC , полистал кучу литературы, пообращался





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский