如果我有一个叫动物的类,狗和鱼是子类.动物具有称为"颜色"的属性.狗具有称为"尾长"的属性,并且鱼没有此属性.鱼具有称为"重量"的属性,狗没有这个属性.
所以,我想设计一个数据库来存储这些信息.我该怎么办?这是一些想法:
想法1:制作动物表,并且表格有类型,以找到什么样的动物,如果是狗,只需从狗桌得到结果.
Animal:color:String类型:int
类型:狗:0鱼:1
狗:TailLength:int
鱼:重量:int
想法2:只在数据库中存储Dog表和Fish表,删除动物表.
狗:颜色:字符串TailLength:int
鱼:颜色:字符串重量:int
我猜这是一个半常见的问题,但我在过去的问题列表中找不到它.我有一组需要共享主键索引的产品表.假设如下:
product1_table:
id,
name,
category,
...other fields
product2_table:
id,
name,
category,
...other fields
product_to_category_table:
product_id,
category_id
Run Code Online (Sandbox Code Playgroud)
显然,在两个产品表之间建立共享索引会很有用.注意,保持它们分开的想法是因为它们除了基础之外还有很多不同的字段集,但是它们共享一个共同的分类.
更新:
很多人都建议使用表继承(或gen-spec).这是我所知道的一个选项,但在其他数据库系统中我可以在表之间共享一个序列,我希望MySQL有类似的解决方案.我认为它不是基于回答.我想我必须继续使用表继承...谢谢大家.
我想创建具有未知深度的分层数据,如下所示:
创建类别和子类别,对于这些子类别,它们还将具有子类别等等。
子类别的深度未知,只能由用户在运行时完成。
我想的是将它们全部放在一个表中,并有一个父列保存父类别的 ID,如下所示:
我不知道这是否是正确的方法,但我看不到任何其他方法。
我进行了快速搜索,发现与 DB 表设计没有直接关系。
我正在使用 MS SQL Server 2012
我目前正在开展一个项目,您可以在其中保存讲师和学生的详细信息.我不知道我是否应该使用一个表User或两个表Lecturer和Student.
当您作为讲师登录时,您具有特殊权限作为项目的组管理页面,在加载学生不具备的组页面上.在Usertbl中将有一个列
status在哪里注册,您可以选择成为学生或讲师的页面并输入特殊的讲师代码.我正在使用PHP和mySql.
在摘要中,我应该User为学生和讲师使用1个表,还是有2个单独的表Student和Lecturer表.
附加信息:1门课程可以有很多讲师和学生,但是1名学生将有1门课程,其中讲师有很多课程.
mysql database database-design single-table-inheritance class-table-inheritance
由于某种原因,我根本无法理解大多数解释此问题的网站。因此,我将尝试在这里提问,如果我在错误的位置,请在评论中告诉我,然后将其放在另一个论坛中并删除此问题。
假设我有2个文件,Batch.bat和PowerShell.ps1。
Batch.bat:
set A="ThisIsSuchVar!"
Run Code Online (Sandbox Code Playgroud)
PowerShell.ps1:
$B = "Well, i don't know what to do here"
Run Code Online (Sandbox Code Playgroud)
我该如何做与B变量相同的A变量?
记住:我希望Batch变量进入PowerShell文件。这是一种单向脚本。我想使用内置的Windows源。而且,请考虑一下我是编程方面的新手,而且英语说得不太好,所以请尽可能简单一些。